Controller1
とController2
の間に違いはありますか?
$onChanges
でこれと同じ操作を行うと、いくつかの行を保存することができたときに
angular.module('app', [])
.component('foo', {
templateUrl: 'foo.html',
bindings: {
user: '<',
},
controller: Controller1, //Or Controller2
});
function Controller1(){
this.$onInit = function(){
this.user = angular.copy(this.user);
};
this.$onChanges = function(changes){
if(changes.user && !changes.user.isFirstChange()){
this.user = angular.copy(changes.user.currentValue);
}
};
}
function Controller2(){
this.$onChanges = function(changes){
if(changes.user){
this.user = angular.copy(changes.user.currentValue);
}
};
}
なぜ私は$onInit
を気にする必要がありますか?
初期化のこのタイプは、$onChanges
と$onInit
の方が、他の種類の初期化に適していますか?要素上のすべてのコントローラが構築されており、それらのバインディングが初期化されていた(そしてこの要素のディレクティブの機能を結ぶ前&ポスト前)の後に、各コントローラに呼び出され