0

私は説明できない行動を経験していますが、他の誰かができると確信しています. 次のようにアプリモジュールを設定しています:

var appmodule = angular.module('appmodule', ['ui']).config(
['$routeProvider', function($routeProvider) {
    $routeProvider.
      when('/dashboard', {
        templateUrl: 'partials/dashboard.html', 
        controller: dashCtr,
        layer: 'main'
      }).
      when('/:campaignId/edit', {
        templateUrl: 'partials/edit.html',
        controller: campaignCtr,
        layer: 'layer1'
      }).
      when('/:campaignId', {
        templateUrl: 'partials/campaign_info.html',
        controller: campaignCtr,
        layer: 'layer1'
      }).
      when('/inbox', {
        templateUrl: 'partials/inbox.html',
        controller: inboxCtr,
        layer: 'main'
      }).
      otherwise({redirectTo: '/dashboard'});
}]);

app.com/:campaignId または app.com/:campaignId/edit に移動すると、すべて期待どおりに動作しますが、app.com/inbox (またはその他のもの) を試すと、/dashboard にリダイレクトされます。URLを変数で始めることはできない他のいくつかの場所を読んだことがありますが、私はこの概念に不慣れで(通常はフロントエンドの設計側だけです)、その理由がわかりません.

ありがとう。

4

1 に答える 1

2

それは単純に、inboxルートが「/:campaignId」ルートの下にあるからです。Angular は定義された順序でルールをチェックし、「/:campaignId」ルールはすべての URL と一致するため、「受信トレイ」ルートに到達する機会はありません。

他のすべてのルートの後に「/:campaign」ルートを定義するだけで、すべてが機能するはずです。

于 2013-04-13T18:47:35.833 に答える