λ²μ κ°μμλ₯Ό μ¬μ©νλ©΄ μ κ°κ³Ό μ΄μ κ°μ΄ λμΌνμ§ νμΈνμ¬ κ°μμκ° μ²μ μ€νλλμ§ μ¬λΆλ₯Ό κ°μ§ν μ μμ΅λλ€.
$scope.$watch('expr', function (newValue, oldValue) {
if (newValue === oldValue) {
// first time running
}
});
κ·Έλ¬λ Angular 1.5 $onChanges
μλͺ
μ£ΌκΈ° νν¬λ₯Ό μ¬μ©νλ©΄ μ리 νμμ κ°μ²΄ UNINITIALIZED_VALUEκ° μ΄μ κ°μ
λλ€. κ·Έλ¬λ μ΄λ₯Ό μ½κ² νμΈν μ μλ λ°©λ²μ μμ΅λλ€. μμ±μμ μ΄λ¦μ νμΈνμ¬ μνν μ μμ΅λλ€.
ExampleController.prototype.$onChanges = function (changes) {
if (changes.expr.previousValue.constructor.name === 'UNINITIALIZED_VALUE') {
// first time running
}
};
κ·Έλ¬λ κ·Έκ²μ μ½κ°μ ν΄νΉμ²λΌ 보μ λλ€.
λ΄κ° μκ°ν μ μλ κ°μ₯ μ’μ ν΄κ²°μ±
μ UNINITIALIZED_VALUE κ°μ²΄λ₯Ό μμ(μ½κΈ° μ μ©)λ‘ μ μ₯νμ¬ λΉκ΅ν μ μλλ‘ νλ κ²μ
λλ€(μ: angular.UNINITIALIZED_VALUE
). λ¬Όλ‘ λ€λ₯Έ μ루μ
λ μμ μ μμ§λ§.
κ°μ¬ ν΄μ!!
κ° change
κ°μ²΄( changes
κ°μ²΄μ ν¬ν¨λ¨)μλ μ΄ μ νν λͺ©μ μ μν isFirstChange()
λ©μλκ° μμ΅λλ€.
isFirstChange()
λ λ³κ²½ κ°μ²΄μμ μ¬μ©ν μ μμΌλ―λ‘ λ€μ μ½λλ₯Ό μ¬μ©νμ΅λλ€.
ctrl.$onChanges = function (changesObj) {
if (changesObj.fieldInfo.previousValue.constructor.name === 'UNINITIALIZED_VALUE') {
init();
}
};
@saurajit μλ κ² κ°μ§ μμ§λ§(μ: Dev λꡬ μ½μμμ change.expr κ°μ²΄λ₯Ό κ°λ¦¬ν¬ λ λλ½λ κ²μΌλ‘ λνλ¨) ν΄λΉ κΈ°λ₯μ κ°μ²΄μ νλ‘ν νμ
μ μ¨κ²¨μ Έ μμ΅λλ€. changes.expr.isFirstChange()
(λλ κ·νμ μμμ changesObj.fieldInfo.isFirstChange()
)λ₯Ό μ€νν΄ λ³΄μμμ€.
isFirstChange()
λ λ³κ²½ κ°μ²΄μμ μ¬μ©ν μ μμΌλ―λ‘ λ€μ μ½λλ₯Ό μ¬μ©νμ΅λλ€.
ctrl.$onChanges = function (changesObj) { if (changesObj.fieldInfo.previousValue.constructor.name === 'UNINITIALIZED_VALUE') { init(); } };
μ£μ‘νμ§λ§ μΆμλ λ²λ€μμλ μλνμ§ μμ΅λλ€.
https://github.com/angular/angular.js/issues/14917#issuecomment -232971141μμ μΈκΈνλ―μ΄ isFirstChange()
λ©μλλ changes
λ΄λΆμ λͺ¨λ _ κ°μ²΄ _μ μμ΅λλ€. λ°λΌμ μ΄ κ²½μ° changesObj.fieldInfo.isFirstChange()
μ΄μ΄μΌ ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
κ°
change
κ°μ²΄(changes
κ°μ²΄μ ν¬ν¨λ¨)μλ μ΄ μ νν λͺ©μ μ μνisFirstChange()
λ©μλκ° μμ΅λλ€.