$stateParams 空 ui 路由器
$stateParams empty ui router
我有这样的状态:
.state('home.deletemsg', {
views: {
"contentworker@": {
url: '/delete/:entityname/:id/:redirectstate',
templateUrl: "Scripts/proteanapp/templates/delete.html",
controller: 'deletectrl',
controllerAs: 'del',
authenticate: true
}
}
然后在控制器中我有:
return app.controller('deletectrl', ['$scope', '$rootScope', '$stateParams', function ($scope, $rootScope, $stateParams) {
debugger;
// check for ui router error
var del = this;
del.entityname = $stateParams.entityname;
del.entityid = $stateParams.id;
}]);
从如下控制器调用 $state.go :
$state.go('home.deletemsg', { 'entityname': cd.Customer.Name, 'id': cd.Customer.CustomerID }, { 'location': false, 'notify': true });
但是$stateParams
是空的,我不明白为什么是空的。我试过将 params 对象放入状态并解决。
$stateParams.entityname //undefined
$stateParams.id //undefined
url
选项应该直接出现在状态定义中,而不是在 state
的 views
对象中。但即使是您的控制器也不应该按照您配置状态的方式来调用。
代码
.state('home.deletemsg', {
//url should present here, rather than putting it inside `views`
url: '/delete/:entityname/:id/:redirectstate',
views: {
"contentworker@": {
templateUrl: "Scripts/proteanapp/templates/delete.html",
controller: 'deletectrl',
controllerAs: 'del',
authenticate: true
}
}
我有这样的状态:
.state('home.deletemsg', {
views: {
"contentworker@": {
url: '/delete/:entityname/:id/:redirectstate',
templateUrl: "Scripts/proteanapp/templates/delete.html",
controller: 'deletectrl',
controllerAs: 'del',
authenticate: true
}
}
然后在控制器中我有:
return app.controller('deletectrl', ['$scope', '$rootScope', '$stateParams', function ($scope, $rootScope, $stateParams) {
debugger;
// check for ui router error
var del = this;
del.entityname = $stateParams.entityname;
del.entityid = $stateParams.id;
}]);
从如下控制器调用 $state.go :
$state.go('home.deletemsg', { 'entityname': cd.Customer.Name, 'id': cd.Customer.CustomerID }, { 'location': false, 'notify': true });
但是$stateParams
是空的,我不明白为什么是空的。我试过将 params 对象放入状态并解决。
$stateParams.entityname //undefined
$stateParams.id //undefined
url
选项应该直接出现在状态定义中,而不是在 state
的 views
对象中。但即使是您的控制器也不应该按照您配置状态的方式来调用。
代码
.state('home.deletemsg', {
//url should present here, rather than putting it inside `views`
url: '/delete/:entityname/:id/:redirectstate',
views: {
"contentworker@": {
templateUrl: "Scripts/proteanapp/templates/delete.html",
controller: 'deletectrl',
controllerAs: 'del',
authenticate: true
}
}