Angularjs 带ui路由器的stateParams与$stateParams?
我很困惑。很长一段时间以来,我一直在使用stateparms作为一种在templateUrl中查找stateparms的方法 现在我下定决心也试着这么做,但没有成功。事实上,当我使用stateparms时,什么都不会发生 然而,我偶然发现我可以在解析中使用$stateParams,并且它可以工作 有人能告诉我有什么区别吗?为什么我需要在templateUrl中使用stateParams,在解析中使用$stateParamsAngularjs 带ui路由器的stateParams与$stateParams?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我很困惑。很长一段时间以来,我一直在使用stateparms作为一种在templateUrl中查找stateparms的方法 现在我下定决心也试着这么做,但没有成功。事实上,当我使用stateparms时,什么都不会发生 然而,我偶然发现我可以在解析中使用$stateParams,并且它可以工作 有人能告诉我有什么区别吗?为什么我需要在templateUrl中使用stateParams,在解析中使用$stateParams var auth = { name: 'auth'
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;
}
}
};
我已经创建了,显示在解析中可以访问$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>
检查它您是正确的$在resolve中有stateParameters,它可以正常工作。但我想知道为什么可以在模板中使用stateParameters,而在解析中不使用stateParameters。我应该在模板中使用$stateParameters吗。只是想知道两者之间的区别是什么,为什么一个在一个地方工作而不是在另一个地方。检查我更新的plunker-不同的模板以获得不同的内容参数(8是数字)