2016-07-21 7 views
0

以下のAngularJS 1.3.8コードにrunブロックを追加するにはどうすればよいですか?AngularJSでランブロックを追加する1.3.8

Iブラウザにアプリケーションをロードしようとすると、FireFoxのデバッガは、制御フローは簡単のいずれかに入ることなくrunブロック及び他のmodule/config/controllersの最初の行の最初の行で停止していることを示しそれら。アプリが読み込まれる前にプログラムが停止します。対照的に、以下のブロックrunをコメントアウトすると、Angularアプリが正しく動作します。

コードはこの例のアプリケーションから取得され、唯一の変更はrunブロックが追加されていることです。

angular.module('hello', [/*'ngCookies',*/ 'ngRoute' ]).config(function($routeProvider, $httpProvider) { 

    $routeProvider.when('/', { 
     templateUrl : 'home.html', 
     controller : 'home', 
     controllerAs : 'controller' 
    }).otherwise('/'); 

    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 

}).run(function ($rootScope, $cookies) { 
    var cookieValue = $cookies.get("myCookie"); 
    if (cookieValue) { 
     $rootScope.myCookieVar = cookieValue; 
    } 
}).controller('navigation', 

function($rootScope, $http, $location, $route) { 

    var self = this; 

    self.tab = function(route) { 
     return $route.current && route === $route.current.controller; 
    }; 

    $http.get('user').then(function(response) { 
     if (response.data.name) { 
      $rootScope.authenticated = true; 
     } else { 
      $rootScope.authenticated = false; 
     } 
    }, function() { 
     $rootScope.authenticated = false; 
    }); 

    self.credentials = {}; 

    self.logout = function() { 
     $http.post('logout', {}).finally(function() { 
      $rootScope.authenticated = false; 
      $location.path("/"); 
     }); 
    } 

}).controller('home', function($http) { 
    var self = this; 
    $http.get('resource/').then(function(response) { 
     self.greeting = response.data; 
    }) 
}); 

答えて

0

$cookiesバージョン1.4までget()set()メソッドを持っていませんでした。

var cookieValue = $cookies.myCookie; 
+0

**に変更してみてくださいありがとうございましたドキュメントを参照してください!**フォワード制御の流れを移動させます。しかし、デバッガは、制御フローが '$ httpProvider.defaults.headers.common ['X-Requested-With'] = 'XMLHttpRequest';という行にヒットしたときにアプリケーションがクラッシュすることを示しています。これは簡単で短いコード例なので、コメントしてもよろしいですか?このコメントに示されている行で停止しているため、制御フローがまだ獲得されていないため、 'run'ブロックが起動していることを確かめることができません。 – FirstOfMany

+0

どのようなエラーがスローされますか? – charlietfl

+0

FireFoxデバッガのコンソールタブには、「エラー:[$ injector:unpr] http://errors.angularjs.org/1.3.8/$injector/unpr?p0=%24cookiesProvider%20%3C-%20%24cookies ' – FirstOfMany

関連する問題