未定義の$ StateParams
-
26-12-2019 - |
質問
私はこれらの経路を定義しています:
.state('sport',
url: '/sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
.state('sport.selected'
url: '/:sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
.
そして私はSport.Selected Stateによって与えられたスポーツパラメータを使用しようとしています。
angular.module('myApp')
.controller('SportCtrl', ['$scope', 'ParseService',
'$stateParams', function ($scope, ParseService, $stateParams) {
var sportURL = $stateParams.sport;
...
});
.
何らかの理由で、私がルートで定義したと思いますが、コントローラ内の$ stateparams.sportを呼び出すと未定義を返します。 なぜこれはケースですか?
あなたの助けをありがとう!
解決
URL /sport/12
にアクセスすると、SportCtrl
は2回インスタンス化されます。状態sport
の場合は、State sport.selected
の場合は1回、1回。そして最初の状態では、状態に関連付けられているパラメータはありませんので、$stateParams.sport
は未定義です。
状態とサブ状態に同じテンプレートを使用するのは非常に奇妙です。同じテンプレートのUIビューのDIV内にテンプレートが埋め込まれています。
所属していません StackOverflow