入力でバインドされたプリミティブを変更したときに $onChanges が開始されない理由がわかりません。誰かが私が間違ったことを見て、これを簡単な方法で説明できますか? 実際のアプリケーションでも動作させることができなかったので、簡単なテスト アプリケーションのplunkrを作成しました。
angular
.module('test', [])
.component('test', {
template: '<child application="vm.application"></child>',
controller: 'testCtrl as vm'
})
.controller('testCtrl', function() {
var vm = this;
vm.$onInit = function () {
vm.application = {
data: {
name: 'Test'
}
}
};
})
.component('child', {
template: '<input type="text" ng-model="vm.application.data.name">',
bindings: {
application: '<'
},
controller: 'childCtrl as vm'
})
.controller('childCtrl', function() {
var vm = this;
vm.$onChanges = function (changes) {
console.log('CHANGED: ', changes);
};
})