Angular 如何避免选中复选框?

标签 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;
        }

问候,

最佳答案

您可以处理click 事件:

<input type="checkbox" (click)="foo($event)" [checked]="false">

并调用 event.preventDefault() 来阻止更改:

foo(event) {
  event.preventDefault();
  console.log("foo was called");
}

参见 this stackblitz用于演示。

关于Angular 如何避免选中复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55619086/

相关文章:

javascript - Angular Forms 不从 HTML 传递数据

angular - 使用原始和有效标志时出现错误 "Expression has changed after it was checked"

sass - 将 sass 集成到 Angular 模板 Visual Studio 中

Angular 2 : using gzip files in production

javascript - url 中没有哈希字符的情况下,Angular2 的 spa 路由如何工作?

javascript - Toggle Angular 4/5 中的表单验证器

javascript - AngularJS - 预加载模板不适用于指令

angular - 引用错误 : Can't find variable: globalThis

基础组件的 Angular 使用模板

angular - 在 NgFor 循环中与 NgIf