Следующий код работает в Angular 1.2, но разрывается в 1.4 с ошибкой Ошибка: [ng: areq] Аргумент «MyController» не является функцией, полученной неопределенностью. Код исходит из книги «ng-book», а живой рабочий пример можно найти здесь: http://jsbin.com/uHiVOZo/1/edit?html,output.Нарушение изменения между AngularJS 1.2 и 1.4?
Что изменилось?
<body>
<div ng-controller="MyController">
{{ clock }}
</div>
<script type="text/javascript">
function MyController($scope) {
$scope.clock = new Date();
var updateClock = function() {
$scope.clock = new Date();
};
setInterval(
function() {
$scope.$apply(updateClock);
},
1000
);
updateClock();
};
</script>
</body>
(Заменить https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.js с https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-rc.2/angular.js в ссылке jsbin)
FYI, используя' $ interval' служба позволяет вам обновлять '$ scope', не требуя использования' $ scope. $ apply() 'http://jsbin.com/zavefaqiju/2/edit (изменить: неверный URL) – azium
Интересный. ect услуга, основанная на имени параметра, или второй параметр для контроллера всегда является сервисом $ interval? – AaronF
Все, что угловые «регистры», контроллеры, службы, фильтры, директивы, конфиг, могут принимать любое количество «поставщиков» в качестве аргументов в любом порядке. Как только вы зарегистрируете то, что вы делаете (контроллер, например), угловой будет вводить этот объект, как '$ scope' – azium