Здравствуйте! Взникла проблема с использованием сервиса $q в AngularJS.
Почему зацикливается цикл $digest и выводится ошибка? Заранее спасибо!
Вот вьюшка:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="bower_components/bootstrap-css/css/bootstrap.css"/>
</head>
<body data-ng-app="AngularApp">
<div class="container" ng-controller="AngularController">
{{tryDef()}}
</div>
<script src="bower_components/angular/angular.min.js"></script>
<script src="app/angular_app.js"></script>
</body>
</html>
Вот сам Javascript:
(function () {
var app = angular.module('AngularApp', []);
app.factory('testDef', ['$q',function ($q) {
return function (name) {
var deferred = $q.defer();
deferred.notify('About to greet ' + name + '.');
var justTempValue = true;
if (justTempValue) {
deferred.resolve('Hello, ' + name + '!');
} else {
deferred.reject('Greeting ' + name + ' is not allowed.');
}
return deferred.promise;
};
}]);
app.controller('AngularController', ['$scope', 'testDef', function ($scope, testDef) {
//просто функция, что бы попробовать promises
$scope.tryDef = function () {
var promise = testDef('Robin Hood');
promise.then(function(greeting) {
console.log('Success: ' + greeting);
}, function(reason) {
console.log('Failed: ' + reason);
}, function(update) {
console.log('Got notification: ' + update);
});
return "5";
};
}]);
})();