ng-click
to $state.go()
to状態を使用して、正しいURLを取得するが、テンプレートとコントローラーが間違っているという奇妙な問題があります。
これらは私の州です:
app.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/messages");
$stateProvider.state('message', {
url: "/messages/:to/:fro/:messageID",
templateUrl: 'message.html',
controller: 'MessageCtrl'
}).state('compose', {
url: "/messages/compose/a/message",
templateUrl: 'compose.html',
controller: 'ComposeCtrl'
});
});
これは私によってトリガーされた関数ng-click
であり、実際にはコンソールログを取得しているので、正しいログが起動していることがわかります。
$scope.composeMe = function(){
console.log("You want to compose a message!");
$state.go("compose");
};
その関数を起動すると、URLが変更されますhttp://example.com/messages/compose/a/message
が、状態のtemplateUrl
とが取得されます。controller
message
何故ですか?もう1つの状態は、同様の(ng-click
派生した)関数から起動され、完全に機能します。
移動しようとしているURLは、実際に移動しようとしているURLと一致します。
ui-routerは、「compose」が必要なto:フィールドではなく、「a」が必要なfro:フィールドではなく、「message」が必要なmessageIDではないことをどのように知るのでしょうか。
より具体的な状態定義を、URLパラメーターを持つ定義の上に移動します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加