Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs:相对路径未使用$location.path重定向_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript AngularJs:相对路径未使用$location.path重定向

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',

我对angularjs url重定向有问题。使用$location.path()加载url似乎与类似$location.path('/admin')的url模式完美配合。但是当我尝试加载$location.path('/admin/home')时,它没有工作。如果我尝试使用$location.path('home'),则会加载html模板。 下面是我的代码

  $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很好,你能接受答案吗:-)?