2016-05-25 18 views
1

私のAngularJSアプリケーションでは、すべてのルートを制御する複数のroute.jsファイルがあります。

デフォルトでは、私は"/"のルートを持っていますが、これは"/main"と同じですが、後でこれを上書きする方法はありますか?

のは、私はこのようなroute.jsあるとしましょう:

angular.module('myApp') 
.config(function ($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.when('/','/main'); 

    $stateProvider 
     .state('main', { 
      url: "/main", 
      templateUrl: 'main.html', 
      controller: 'mainController' 
     }); 
}); 


しかし、その後、私は動的にroute2.jsから新しいもので、このデフォルトルートを上書きするかを

angular.module('myApp') 
.config(function ($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.when('/','/newMain'); 

    $stateProvider 
     .state('newMain', { 
      url: "/newMain", 
      templateUrl: 'newMain.html', 
      controller: 'newMainController' 
     }); 
}); 
+0

route2.jsが常にroute.jsの後にロードされることを確認していますか? – seekers01

答えて

1

.when設定に定数を指定するだけでなく、関数でも可能です。だから、

、(例えばナイーブグローバルvar useDifferent = false;)とフック意思決定、それにさんは、いくつかの設定てみましょう:

$urlRouterProvider.when("/other", function(){ 
    if(useDifferent){ 
     return "/newMain"; 
    } 
    return "/Main"; 
}); 

その後、誰もがちょうどずっと、useDifferent = true(または原因のいくつかのより多くを設定することを変更することができますスマートで正確な処理...)

関連する問題