2017-09-13 3 views
0

私は多くの投稿を読んだことがありますが、どちらもうまくいきません: $ state.goを使ってデータを渡したいと思います。

これは私の状態です:

$state.go('app.404', {errorInfo: {status: 403, message: 'unauthorised', fix: 'You have to login'}}); 

、これは私が私のコントローラ内のデータをキャッチしようとする方法である:

.state('app.404', { 
    url: '404', 
    views: { 
     '[email protected]': { 
     templateUrl: 'views/empty.html' 
     }, 
     '[email protected]': { 
     templateUrl: '404.html', 
     controller: 'fofController' 
     }, 
     '[email protected]': { 
     templateUrl: 'views/empty.html' 
     }, 
     params: {errorInfo: null} 
    } 
    }) 

これは私がデータを渡す方法です

.controller('fofController', ['$scope', '$state', 
function ($scope, $state) { 
    console.log($state.params); 
}]) 

ですが、答えは空のオブジェクトです({})。私はまた、以下のように$ stateParamsを使用しますが、私は、空のオブジェクトと同じ結果が得られます。

.controller('fofController', ['$scope', '$stateParams', 
function ($scope, $stateParams) { 
    console.log($stateParams); 
}]) 
+0

$ state.params。 errorInfoこれはあなたに何を与える –

+0

答えは "未定義"です –

+0

あなたの 'params'設定はあなたの状態設定の' views'設定の中にあります。レベルアップ。 –

答えて

0

オプション-1

.state('404.contact/', { 
    url: '/contact/:obj', 
    templateUrl: "contact.html", 
    controller: "contactCtrl", 
    params: { 
     obj: null, 
    } 
}) 
.state('404.header', { 
    url: '/header/:number', 
    templateUrl: "header.html", 
    controller: "headerCtrl", 
    params: { 
     obj: null 
    } 

})

オプション-2

$state.go(..... 

代わりにこのコードを試してください。

$state.transitionTo(... 

オプション-3

おそらく、たぶん、これらの問題を解決しているURL

$stateProvider 
.state('user', { 
    url: '/user/:obj', 
    templateUrl: 'templates/user.html', 
    controller: 'UserCont' 
}) 

に転送してみてください。

Working example with $state.go()

+0

あなたの答えはありがとうございましたが、問題は自分では愚かな間違いでした。 paramsはビューセクションにあってはなりません。 As @ JC Fordの言葉:\t \t あなたのparamsの設定はあなたの状態設定のあなたのビュー設定の中にあります。レベルアップ –

関連する問題