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 ページに添付されます。

config.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;

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

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 に答える