改变状态时URL不更新
URL not updating when change state
对于下面的代码,当我从"/login"页面转到"/quiz"页面时,状态随着内容而变化,但URL没有变化。我还注意到,当我从"/login"页面转到"/newsfeed"页面时,URL和状态都在变化。为什么会发生这种情况,我需要URL随着状态而改变。
X.config(['$httpProvider', '$stateProvider', '$urlRouterProvider', '$locationProvider',
function($httpProvider, $stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('app', {
template: '<div ui-view=""></diiv>'
})
.state('app.login', {
templateUrl: '../views/login/login.html',
controller:'LoginController'
})
.state('app.login.main', {
url: '/login',
templateUrl: '../views/login/login-main.html',
controller: 'LoginController'
})
.state('app.login.quiz_list', {
templateUrl: '../views/quiz/quiz_list.html',
controller: 'QuizListController',
url: '/quiz'
})
.state('app.front', {
templateUrl: '../views/user_utility/app.html',
controller: 'HeaderController'
})
.state('app.front.newsfeed', {
url: '/newsfeed',
templateUrl: '../views/user_utility/newsfeed.html',
controller: 'UserFeedController'
});
$httpProvider.interceptors.push('AuthInterceptor');
$httpProvider.defaults.useXDomain = true;
}
])
发生这种情况是因为父状态为您的登录。主和登录。Quiz_list具有相同的父元素。这就是ui - router在Angular.js中的工作方式。
如果你有S1和S2两种状态,S2是S1的子状态,当你转到S2时,URL将是S1/S2。
你的'app'和'app.login'状态没有指定URL, 'app.login'。main' state的URL指定为"/login",所以当你在这个页面时,你的URL应该是"domain/#/login"。测试页面的状态为"app.login"。quiz_list', URL是'quiz'。由于您的登录主页和quiz页面具有相同的父状态(app.login是main和quiz_list的父状态),因此当您移动到此状态时,URL不会完全改变,只有'quiz'将被附加到URL。所以你在测试页面的URL应该是"domain/#/login/quiz"
然而,你的新闻订阅页面有一个不同的父- 'app.front.newfeed',它的URL为'/newsfeed'。现在可以看到,app的前端状态没有任何URL,所以当你进入这个状态时,你的URL应该是"domain/#/newsfeed"。
为了防止这种情况,我建议将quiz_list移到不同的级别。你的状态层次结构应该是这样的:
- 应用程序
- 登录
- 主要
- 前
- 订阅
- Quiz_list
- 登录
按照代码应该是
app.state('app', ...)
app.state('app.login', ...)
app.state('app.login.main', ...) //URL - /login
app.state('app.front', ...)
app.state('app.front.quiz_list', ...) //URL - /newsfeed
app.state('app.front.newsfeed', ...) //URL - /quiz
- 更新URL时使用Javascript函数显示日期
- 更新 url 而不重新加载,具体取决于使用 jquery/javascript 选择的复选框
- Angular/UI路由器-如何在不刷新所有内容的情况下更新URL
- 在不重新加载页面的情况下更新 URL 哈希
- 通过添加值1更新URL
- 修改req.url;t更新url参数(req.query)
- 猫头鹰轮播2 在拖动时更新 URL 哈希导航
- 在不触发状态更改的情况下更新 URL
- 我需要一些关于PHP的帮助,并在“?”之后更新URL
- 使用 JavaScript 更新 URL 不起作用
- 从 iFrame 内部更新 URL
- 动态更新 url/html 标题时,如何获得类似 facebook 的按钮来注册更改?(不是 fb:like 中的 hr
- 如何使用AngularJS中的下拉列表来更新URL以从中抓取图片
- 使用JS/RRails和下拉表单更新URL查询字符串
- 如何在不使用JavaScript刷新整个PHP页面的情况下更新url
- 如何在Angular文件上传模块中更新URL路径
- 使用jquery显示/隐藏功能更新url
- 在jquery中用两个下拉列表更新URL
- 如何在选择jQuery选项卡时正确更新URL哈希
- 更新url中的两个参数