$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 选项应该直接出现在状态定义中,而不是在 stateviews 对象中。但即使是您的控制器也不应该按照您配置状态的方式来调用。

代码

.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
   }
}