Javascript AngularJs:相对路径未使用$location.path重定向
我对angularjs url重定向有问题。使用$location.path()加载url似乎与类似$location.path('/admin')的url模式完美配合。但是当我尝试加载$location.path('/admin/home')时,它没有工作。如果我尝试使用$location.path('home'),则会加载html模板。 下面是我的代码Javascript AngularJs:相对路径未使用$location.path重定向,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我对angularjs url重定向有问题。使用$location.path()加载url似乎与类似$location.path('/admin')的url模式完美配合。但是当我尝试加载$location.path('/admin/home')时,它没有工作。如果我尝试使用$location.path('home'),则会加载html模板。 下面是我的代码 $stateProvider .state('admin', { url: '/admin',
$stateProvider
.state('admin', {
url: '/admin',
templateUrl: 'Admin/admin.html',
controller: 'adminController',
controllerAs: 'vm'
})
.state('admin.home', {
url: '/admin/home',
templateUrl: 'Admin/admin.home.html'
controller: 'adminHomeController',
controllerAs: 'vm'
})
控制器脚本
authorizeUser(function(result){
if(result === true) {
$location.path('/admin/home');
}
}
在使用嵌套状态时,不要在此处使用
$location.path
。相反,注入$state
并使用$state.go
,状态名称如下
authorizeUser(function(result){
if(result === true) {
$state.go('admin.home');
}
}
注意:由于此(admin.home
)是admin
状态的嵌套状态,您应该在admin状态的模板admin/admin.html
内有另一个ui视图$state.go()按州id排序
$state.go('admin.home');
2$location.path()和url路径。
根据我的经验,“$location.path()”函数的调用有很小的延迟
因此,您必须使用$timeout service
authorizeUser(function(result){
if(result === true) {
$timeout(function() {
$location.path('/admin/home');
}, 300);
}
}
谢谢你,阿鲁纳。你刚刚救了我一天。它就像一个符咒。我只是忘了将ui视图放在模板中。@CodeRedz很好,你能接受答案吗:-)?