2016-07-21 13 views
1

私はルートが複数のファイルに分割されているモジュラーアプリケーションを持っています。角度UIルーターがデフォルトページにリダイレクト

私のシステムはです。 Register.html

Top 
--Main.Module.js 
--Main.Routes.js 
--Main.Controllers.js 
--Main.html 
--user (folder) 
----User.Module.js 
----User.Routes.js 
----User.Controllers.js 

とユーザーフォルダに私がlogin.htmlを持つログインフォルダとレジスタのフォルダを持っているメインモジュールファイルは、この

angular.module('Main', ['ionic', 'Main.Routes', 'Main.Controllers', "User"]) 

    .run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
     // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
     // for form inputs) 
     if (window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     cordova.plugins.Keyboard.disableScroll(true); 

     } 
     if (window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleDefault(); 
     } 
    }); 
    }); 

のように見えますメインルートファイルは

angular.module('Main.Routes', []) 

.config(function($stateProvider, $urlRouterProvider) { 
    $stateProvider 

    .state('Loader', { 
     url: '/', 
     templateUrl: '/views/Main.html', 
     controller: 'MainController' 
    }); 

    $urlRouterProvider.otherwise('/'); 
}); 

が含まれており、Main.Module.jsは、これら二つのものだけでなく、Uを注入しますファイルをJS SERモジュールは、ユーザのルートファイルはログインページのルートやレジスタページ

angular.module('User.Routes', []) 

.config(function($stateProvider) { 
    $stateProvider 

    .state('Login', { 
     url: '/user/login', 
     templateUrl: 'views/user/login/Login.html', 
     controller: 'LoginController' 
    }) 

    .state('Register', { 
     url: '/user/register', 
     templateUrl: 'views/user/register/Register.html' 

    }); 



    // if none of the above states are matched, use this as the fallback 


}); 

そして、私は$ state.go(「ログイン」)を行うがあり、この

angular.module('User', ['User.Controllers', 'User.Services', 'User.Routes']); 

のように見えますメインコントローラーからは問題なくログインページに移動します。しかし、私は、その後すぐにメインのHTMLページに戻って以上のことをキック約半分秒レジスタページに私をリダイレクトするコード

//Move user to the register page 
    $scope.registerClick = function(){ 
    $state.go("Register"); 
    } 

のこのブロックに関連付けられているログインページ上の登録ボタンがあります。ですから、私の質問は、なぜ国家が登録ページにいないのかを知る必要があり、すぐにmain.htmlページに移動しています。レジスタページは、ページヒストリスタックの一部です。ハードウェアの戻るボタンまたはテスト中にクロムを押して戻ることができるためです。私はルートをメインルートファイルに戻してみましたが、ユーザールートは注入しませんでしたが、同じ結果が得られました。私は、ページを変更した場合

アプリケーションがロードしたら============== EDITの============= 、それはメインページの後に行きますを登録ページに追加し、ログインページにリンクを追加すると、この現象は発生しません。私はちょっと違うものを混乱させているだけです。

+0

されている必要がありますどのような 'はconsole.log($のstate.href( "登録"))を行う'、あなたが得るものを教えて? – Rachmaninoff

+0

#/ user/register RegisterControllerから完了したとき – SoulOfSet

+0

そして、もし私がアドレスバーから直接URLに行くなら、問題はありません。それはログインページからリダイレクトしようとしたときです。この問題はありますか? – SoulOfSet

答えて

0

を設定します。 ng-clickディレクティブの横にある登録ページに私を連れて行くはずだったボタンがある場所には、hrefディレクティブも#に設定されていました。しかし、あなたのすべての入力をありがとうございました。

問題のある行

<a href="#" ng-click="registerClick()" class="button button-light button-block button-clear ">Create an account</a> 

それは

<a href="#" ng-click="registerClick()" class="button button-light button-block button-clear ">Create an account</a> 
0

は私が間違っていたかを見るotherwise

.config(function($stateProvider, $urlRouterProvider) { 
      $urlRouterProvider.otherwise('/defaultpage'); 
     .state('login', { 
        url: '/login', 
        templateUrl: 'templates/template.html', 
        controller: 'Ctrl' 
       }) 
     .otherstates etc.... 

     }); 
+0

私は以前これを試していました。それは私の問題を解決しませんでした。 – SoulOfSet

関連する問題