12

Cookie が存在するかどうかを検証する関数を作成しました。この関数を angularjs を使用してすべてのページで実行したいと考えています。関数を実行できないようです。モジュールを新しいコントローラーに装着する必要がありますか?

これは私が到達した距離です:

  angular.module('myApp', ['ngCookies']).
    config(['$routeProvider', function($routeProvider) {
    $routeProvider.
        when('/products', {templateUrl: '/tmpl/products.html', controller: Ctrl}).
        otherwise({redirectTo: '/index'})
  }]).run( function($rootScope, $location) {

 //should I call it here?
 //validateCookie();


});

function validateCookie($scope, $cookieStore, $http){


}
4

4 に答える 4

1

コントローラーに挿入したいサービスを作成します。angular サイトには、これを行う方法の良い例があります: Creation Services。通常、多くの場所で何らかのロジックを使用したい場合は、サービスを作成するのがその方法です。

于 2013-04-22T16:30:37.917 に答える
1

おそらく、ルート イベント (routeChangeStart) に関連付けて、ルートが変更される前にこれをテストできますか? テストが失敗した場合、リダイレクトします。

http://docs.angularjs.org/api/ng .$route

ルート変更のキャンセルに関するディスカッション: https://groups.google.com/forum/?fromgroups=#!topic/angular/-yPBLMJQO_Q

于 2013-04-22T16:28:05.643 に答える