У меня есть форма, управляемая шаблоном, в которой я устанавливаю флажок, который может переключать его значение.
Составная часть
public toggles = [
{ value: 'toggled', display: 'Toggled' },
{ value: 'untoggled', display: 'UnToggled' },
];
<div>
<input type="hidden" name="toggle" [(ngModel)]="user.toggle">
<div>
<label>
<input type="checkbox"
[checked]="user.toggle === toggles[0].value"
(change)="$event.target.checked? (user.toggle = toggles[0].value) : (user.toggle = toggles[1].value)">
{{ toggles[0].display }}
</label>
</div>
</div>
Следующее отлично работает, но когда я переключаюсь на Angular Material, он просто не работает.
Код шаблона материала
<input type="hidden" name="toggle" [(ngModel)]="user.toggle">
<md-checkbox [checked]="user.toggle === toggles[0].value"
(change)="$event.target.checked?(user.toggle = toggles[0].value): (user.toggle = toggles[1].value)">
{{toggles[0].display}}</md-checkbox>
Я получаю следующую ошибку в консоли: не удается прочитать свойство консоли undefined,
TypeError: Cannot read property 'checked' of undefined
at Object.eval [as handleEvent] (TemplateDrivenComponent.html:64)
Я знаю точку, в которой возникает ошибка $ event.target.checked angular не может прочитать это проверенное событие на md-checkbox, как обойти это, любые указатели будут отличными
Благодарность
this
? - person TheRealMrCrowley   schedule 02.04.2017$event.target
не определено, так как и где вы ее регистрируете? - person TheRealMrCrowley   schedule 02.04.2017