Родительский компонент (директива), записанный в AngularJS, вызывает дочерний компонент как таковой.
<div class="container">
<preferences
prefix="user"
permissions=options.permissions
selected-permissions=user.permissions
license=selectedLicense
actions=true
on-change=permissionsChangedCallback(selectedPermissions)>
</preferences>
</div>
</div>
Дочерний компонент Preferences теперь записан в Angular 2 и понижен с помощью
app.directive('preferences', downgradeComponent({component: PreferencesComponent}));
Функция permissionsChangedCallback определена в контроллере родительского компонента. Ранее настройки дочернего компонента использовались для вызова функции, которая проверяла, было ли предоставлено изменение при изменении, и если это так, то дочерний элемент будет вызывать его, передавая дочерние параметры c:
// Previous AngularJS preferences child functions
if (this.onChange) {
this.onChange({
selectedPermissions: this.selectedPermissions
});
}
Однако Я не могу понять, как передать изменение ребенку, теперь, когда ребенок записан в angular 2.
Это то, что я пробовал (не работало):
<preferences
[prefix]="'user'"
[permissions]=options.permissions
[selected-permissions]=user.permissions
[license]=selectedLicense
[actions]=true
(change)="permissionsChangedCallback(selectedPermissions)"> <------ This one doesn't work, the child gets a string?
</preferences>