2

我正在使用 ui-router 进行状态转换,但遇到了问题,无法解决。

当我使用 ui-sref 进入子状态时,它给了我这个错误

错误:无效的状态参考''

这是我的代码: user.js(控制器):

<a id="sim_'+row.simId+'" title="Click to go to SIM details" ui-sref="app.sims.subscriptions({userId:'+userId+',simId:\''+row.simId+'\'})">

这将得到解决并附加到 HTML 页面。

配置.js

.state('app.sims',{
            abstract:'true',
            url:'/sims/:userId/:simId',
            templateUrl:'app/tpl/app/sims.html',
            controller:'SIMsCtrl',
            controllerAs:'vm'
})
.state('app.sims.subscriptions',{
            url:'/subscriptions',
            templateUrl:'app/tpl/app/subscriptions.html',
            controller:'SubscriptionCtrl',
            controllerAs:'vm'
})

sims.js(控制器):

vm.simId=$stateParams.simId;
vm.userId=$stateParams.userId;

模拟人生.html

<li>
    <a data-toggle="tab" ui-sref="app.sims.subscriptions" data-target="#" role="tab">Subscriptions<span class="sm-nxt-ln"></span></a>
</li>

subscription.js(控制器):

var userId=$scope.$parent.vm.userId;
var simId=$scope.$parent.vm.simId;

我得到了 subscription.js 中的值。userId 和 simId 正在得到解决,但在控制台中我收到了无效状态错误。

我该如何解决这个问题。请帮忙。

4

2 回答 2

2

我刚刚遇到同样的问题并意识到,当 ui-sref 设置为 null 时会发生这种情况

<a ui-sref="">Invalid</a>

检查是否app.sims.subscriptions不为空

于 2016-11-19T15:51:43.823 回答
0

根据您的代码,该状态app.sims.simDetail不存在。

.state('app.sims.simDetail',{
        url:'/details/:simId',
        templateUrl:'app/tpl/app/details.html',
        controller:'DetailsCtrl',
        controllerAs:'vm'
})

如果你添加这样的东西,它应该可以工作。

于 2016-01-25T08:14:57.853 回答