2016-09-13 15 views
0

に依存していますと文字ですか?Angularjs状態のURLは、私は私の状態で次のURLを使用していた数値URL

のような:

.state('forum.spesific', { 
      url: '/:articleId ONLY BY NUMBER', 
      templateUrl: 'modules/forum/client/views/forum.client.view.html', 
      controller: 'forumController', 
      controllerAs: 'vm', 
     }) 
    .state('forum.spesific', { 
      url: '/:articleId BOTH (have to be both)', 
      templateUrl: 'modules/forum/client/views/forum2.client.view.html', 
      controller: 'forumController', 
      controllerAs: 'vm', 
     }) 

答えて

0

あなたはregex-like構文を使用することができます:'/articles/{id:int}'、整数だけにマッチします。 JavaScriptの安全な整数の範囲外にすることができますが、そのようregexで指定することができます... https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger

+0

に役立ちますので、この場合は/次のようになります。情報でarticleID:int型は、その情報でarticleIDは次のようになりますint内? 他はどうなりますか?それは文字列で動作するでしょうか? – maria

+0

'{mixed}'パラメータを '{int}'パラメタの後ろに置くだけでよいのです。 – Hitmands

0

:ID(bigInt例えば):のでところで が、これは非常に、安全ではありません

.state('forum.spesific', { 
     url: '/{articleId:[0-9]+}', 
     templateUrl: 'modules/forum/client/views/forum.client.view.html', 
     controller: 'forumController', 
     controllerAs: 'vm', 
    }) 
.state('forum.spesific2', { 
     url: '/{articleId:[a-zA-Z0-9]+}', 
     templateUrl: 'modules/forum/client/views/forum2.client.view.html', 
     controller: 'forumController', 
     controllerAs: 'vm', 
    }) 

が、なぜ唯一の違いがid型であるのか2つの理由がありますか?

+0

@DMISSOKHO、それはidが数字か混在しているかどうかに依存しているからです。数字がページ番号を表示すると、トピックを表示します。 しかし、wouldes spesific2もforum.spesificにマッチします.2番目の状態は両方でtrueになりますか? – maria

+0

IDで2つの動作を使用する場合は、コントローラのタイプをテストできます。 2つ目は、他の正規表現を使うことができます。私は自分の答えを更新する – DMCISSOKHO

0

たぶん、あなたは同じにそれらの2つの状態をマージし、templateUrl

templateUrl: function (stateParams){ if(isNaN(stateParams.articleId)){ return "modules/forum/client/views/forum2.client.view.html" } else { return "modules/forum/client/views/forum.client.view.html"; } }

希望を変更することができ、これは

関連する問題