stateParams vs $stateParams with ui-router?
stateParams vs $stateParams with ui-router?
我很困惑。很长一段时间以来,我一直在使用 stateParams 作为在 templateUrl 中找出 stateParams 的方法。
现在我尝试在解决中做同样的事情,但它不起作用。事实上,当我使用 stateParams 时什么也没有发生。
然而我偶然发现我可以在解析中使用 $stateParams 并且它有效。
谁能告诉我有什么区别,为什么我需要在 templateUrl 中使用 stateParams 而在 resolve 中使用 $stateParams?
var auth = {
name: 'auth',
url: '/Auth/:content',
templateUrl: function (stateParams) {
var page = 'app/auth/partials/' + stateParams.content + '.html';
return page;
},
controller: function ($scope, authService) {
$scope.aus = authService;
},
resolve:
{
init: function ($stateParams) {
var x = 99;
return true;
}
}
};
我创建了 working example here,表明 $statePrams
可以在解析
中访问
// States
$stateProvider
.state('auth', {
url: "/auth/:content",
templateUrl: 'tpl.html',
controller: 'AuthCtrl',
resolve : {
init : ['$stateParams' , function($stateParams){
return { resolved: true, content: $stateParams.content };
}]
}
})
控制器
.controller('AuthCtrl', ['$scope', 'init', function ($scope, init) {
$scope.init = init;
}])
这可能是电话
<a href="#/auth/8">auth/8</a>
<a href="#/auth/xyz">auth/xyz</a>
检查一下here
我很困惑。很长一段时间以来,我一直在使用 stateParams 作为在 templateUrl 中找出 stateParams 的方法。
现在我尝试在解决中做同样的事情,但它不起作用。事实上,当我使用 stateParams 时什么也没有发生。
然而我偶然发现我可以在解析中使用 $stateParams 并且它有效。
谁能告诉我有什么区别,为什么我需要在 templateUrl 中使用 stateParams 而在 resolve 中使用 $stateParams?
var auth = {
name: 'auth',
url: '/Auth/:content',
templateUrl: function (stateParams) {
var page = 'app/auth/partials/' + stateParams.content + '.html';
return page;
},
controller: function ($scope, authService) {
$scope.aus = authService;
},
resolve:
{
init: function ($stateParams) {
var x = 99;
return true;
}
}
};
我创建了 working example here,表明 $statePrams
可以在解析
// States
$stateProvider
.state('auth', {
url: "/auth/:content",
templateUrl: 'tpl.html',
controller: 'AuthCtrl',
resolve : {
init : ['$stateParams' , function($stateParams){
return { resolved: true, content: $stateParams.content };
}]
}
})
控制器
.controller('AuthCtrl', ['$scope', 'init', function ($scope, init) {
$scope.init = init;
}])
这可能是电话
<a href="#/auth/8">auth/8</a>
<a href="#/auth/xyz">auth/xyz</a>
检查一下here