Как реагировать на изменения одним способом
В следующем фрагменте:
angular.module('myModule')
.component('myComponent', {
controller : [
MyComponentController
],
bindings: {
input: '<'
}
});
В соответствии с документацией - раздел "Компоненты имеют четко определенный жизненный цикл", чтобы контролировать, что связывание input
изменилось, мы могли бы использовать $onChanges
метод жизненного цикла. Я не могу заставить это работать.
Вот как я это использую:
function MyComponentController () {self. $ onChanges = function (changesObj) {// некоторый код здесь} }
Но код даже не входит в функцию.
2 ответа
Как мы выяснили в комментариях, проблема заключалась в том, что $onChanges
крюк (вместе с $onDestroy
а также $postLink
) не был добавлен до версии 1.5.3 Angular, а zatziky использовал 1.5.0, которая реализует только $onInit
крюк. Кажется немного странным, что они добавили такую большую особенность в релиз патча, но по крайней мере это было легко исправить.
Это была ошибка, исправленная в версии 1.5.4.
Тем не менее, я использую версию 1.5.3, и она работает. Странный...
Обновить
@JoeClay заметил, что это не было ошибкой вообще. $onChanges
был добавлен в версии 1.5.3.