angular-material2 - 切换 Angular Material 复选框中的值

标签 angular-material2 angular

我有一个模板驱动表单,其中放置了一个可以切换其值的复选框。

组件

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 时,它就无法工作。

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>

我在控制台中收到以下错误,它表示无法读取未定义控制台的属性,

TypeError: Cannot read property 'checked' of undefined
        at Object.eval [as handleEvent] (TemplateDrivenComponent.html:64)

我知道发生错误的点 $event.target.checked Angular 无法读取 md-checkbox 上的此选中事件,如何解决此问题任何指针都会很棒

谢谢

最佳答案

查看评论,尝试以下操作,希望这可以解决问题,我猜您不需要在 Material 中使用带有事件的目标。

 <input type="hidden" name="toggle" [(ngModel)]="user.toggle">
        <md-checkbox [checked]="user.toggle === toggles[0].value"
                       (change)="$event.checked?(user.toggle = toggles[0].value): (user.toggle = toggles[1].value)">
            {{toggles[0].display}}</md-checkbox>

关于angular-material2 - 切换 Angular Material 复选框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43165317/

相关文章:

angular - 如何使用 Angular 2 为不同的环境加载不同的全局 css 样式

javascript - Angular 2 : Active Router link and routerLinkActiveOptions for dynamically generated links

angular - 带有嵌套下拉选项(如 angular1)的 Material 设计 angular2/4 菜单的示例是什么?

css - md-menu 覆盖 Angular 2 中的默认最大宽度

angular - 无法绑定(bind)到 'mdDatepicker',因为它不是 'input' 的已知属性

javascript - Angular 4 Bootstrap 下拉菜单需要 Popper.js

Angular:我将如何链接 Mat-paginator 的 pageSize 来呈现该数量的项目?

angular-material2 - 在 Angular 5 的 Material 自动完成中有默认选择值吗?

angular - 如何正确地 forkJoin 可观察对象列表或其订阅?

angular - 正在为任何非延迟加载模块使用 @Injectable providedIn 与 providedIn : "root"? 相同