Angular如何避免选中复选框?

时间:2019-04-10 18:25:28

标签: angular angular-forms angular-template

单击复选框后,我将显示一个带有两个按钮的模态,接受和不接受。仅当选中接受按钮时,才应选中该复选框。

出于测试目的,我尝试创建此复选框

<input type="checkbox" (change)="foo()" [checked]="false">

期望它执行我组件的foo方法,但从不进行检查。问题是它被检查了!我来自React背景,这非常令人沮丧。

知道我在做什么错吗?

我也尝试过

<input type="checkbox" name="show_recurrency" (change)="foo()" [(ngModel)]="checkout.recurrency" id="show_recurrency" />

        foo(e) {
          e.preventDefault();
          console.error('foooooooooooooooo', e);
          this.checkout.recurrency = false;
          return;
        }

此致

2 个答案:

答案 0 :(得分:2)

您可以处理<input type="checkbox" (click)="foo($event)" [checked]="false"> 事件:

event.preventDefault()

并致电foo(event) { event.preventDefault(); console.log("foo was called"); } 以阻止更改:

sourceSets { main { jni.srcDirs = ['src/main/jni', 'src/main/jniLibs/'] } }

有关演示,请参见this stackblitz

答案 1 :(得分:0)

您可以为其分配一个type OneType = {a: string}; type TwoType = { b: number }; type DefineItem = { bar: 'one', baz: OneType } | { bar: 'two', baz: TwoType }; const item1: DefineItem = { bar: 'one', baz: { a: 'hello' } } const item2: DefineItem = { bar: 'two', baz: { b: 5 } } ,然后在[(ngModel)]内将其强制设置为false。