Angularjs angular ui.router state.go(';statename';)不工作
这是angular.ui.router定义Angularjs angular ui.router state.go(';statename';)不工作,angularjs,angular-ui-router,Angularjs,Angular Ui Router,这是angular.ui.router定义 app.config([ '$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){ $urlRouterProvider.otherwise('/'); $stateProvider.state('/login',{ url: "/", controller: 'Log
app.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise('/');
$stateProvider.state('/login',{
url: "/",
controller: 'Login',
templateUrl: 'login.html'
})
.state('/useractivities',{
url: "/activities",
controller: 'activitiesController',
templateUrl: 'useractivities.html'
})
}
]);
在我正在执行的登录控制器中
$state.go('useractivities', {});
这会出现错误“无法从状态“/”解析“useractivities”
我试过一些东西,比如
$location.url('useractivities')
但是运气不好,有人能告诉我出了什么问题吗?这里的问题是
$state.go()
调用的to
参数必须是existing statename。而且“活动”
不是现有名称。。。它是'/activities'
我首先建议使用不同的状态命名:
$stateProvider
// instead of this
// .state('/',{
// let's use this state name
.state('login',{ // this is a STATE Name
url: "/",
controller: 'Login',
templateUrl: 'login.html'
})
// instead of this
// .state('/activities',{
// use this
.state('activities',{ // this is a STATE Name
url: "/activities",
controller: 'activitiesController',
templateUrl: 'useractivities.html'
})
这样就行了
$state.go('activities', {}); // we use STATE Name here
$state.go('login', {}); // also state name...
查看此处了解更多详细信息:
至
字符串绝对状态名或相对状态路径
将转换到的状态的名称或相对状态路径。如果路径以^or开头。那么它是相对的,否则它是绝对的
一些例子:
如果您试图在州名称中使用“.”,也可能发生此问题。例如:
$stateProvider.state("Activities.Details", { url: ... })
...
$state.go("Activities.Details");
如果使用“\u1”或其他非保留字符,它将正常工作
$stateProvider.state("Activities_Details", { url: ... })
...
$state.go("Activities_Details");
刚才看到了,我在州名称中使用了“/”。谢谢你,看到你成功了!
UI路由器
真是太棒了请注意,点符号“.”表示点之前状态名称的子状态。因此,如果您试图转到go.sub
,sub应该是状态“go”的子状态。所以,如果您没有将sub定义为“go”的子级,它将不起作用。
$stateProvider.state("Activities_Details", { url: ... })
...
$state.go("Activities_Details");