В моем компоненте я передаю объект как привязку,
.component('selectionButton', {
bindings: {
parentForm : '<'
},
templateUrl: 'selection-button-component.html',
controller: 'selectionButtonController',
controllerAs: 'selBtnCtrl'
});
Проблема в том, что объект, который я передаю, еще не загружен, когда мой компонент инициализирован, поэтому в хуке $onChanges я сделал это:
vm.$onChanges = function(newObj){
if(angular.isDefined(newObj.parentForm.currentValue)){
vm.parentForm = newObj.parentForm.currentValue;
}
};
В моем контроллере я вызываю vm.parentForm
в функции, которую я запускаю, когда я нажимаю кнопку после того, как моя страница полностью загружена, но я всегда получаю ее как undefined
, даже когда я изменил ее значение, используя $onChanges
.
Когда я проверил функцию vm.$onChanges
, я увидел, что значение vm.parentForm
получает новое значение в changesObj.parentForm
.
Как я могу это решить?
Редактировать :
Я попытался обернуть свой элемент ng-if
следующим образом:
<span ng-if="fullPage.posteForm">
<selection-button parent-form="fullPage.posteForm" ></selection-button>
</span>
но это не сработало. Я также пробовал двустороннюю привязку, которая также не работала.
onChanges() = function(changes) { if (changes.parentForm.currentValue !== undefined) { this.parentForm = changes.parentForm.currentValue; }
- person rbinsztock   schedule 28.08.2017