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;
})
});
**に変更してみてくださいありがとうございましたドキュメントを参照してください!**フォワード制御の流れを移動させます。しかし、デバッガは、制御フローが '$ httpProvider.defaults.headers.common ['X-Requested-With'] = 'XMLHttpRequest';という行にヒットしたときにアプリケーションがクラッシュすることを示しています。これは簡単で短いコード例なので、コメントしてもよろしいですか?このコメントに示されている行で停止しているため、制御フローがまだ獲得されていないため、 'run'ブロックが起動していることを確かめることができません。 – FirstOfMany
どのようなエラーがスローされますか? – charlietfl
FireFoxデバッガのコンソールタブには、「エラー:[$ injector:unpr] http://errors.angularjs.org/1.3.8/$injector/unpr?p0=%24cookiesProvider%20%3C-%20%24cookies ' – FirstOfMany