javascript - 如果满足条件,则停止 div 上的点击事件——Angular 5

标签 javascript html angular event-handling

我有一个生成比方说 20 个 div 的循环。每个 div 都是我本地对象数组中的一个对象。这是代码:

<div *ngFor="let item of userInventory"
           class="col-2 c-pointer"
           (click)="addItemToArray(item)">
        <img src="{{item.image}}" class="img-fluid"/>
        <span class="d-block">{{item.name}}</span>
</div>

当用户点击 div(item) 时,它会将项目添加到数组中:

addItemToArray(item) {
    this.itemsToSend.push(item);
    item.isAdded = true;
  }

用户在任何情况下都不允许在数组中添加相同的项目两次,但我不想改变 userInventory 数组(或 splice() 它).我希望它仍然可见,只需更改它的一些样式,使其看起来已禁用。同样如您所见,单击项目时,item.isAdded 变为 true

我想做的是,当item.isAdded为真时,禁用div上的(点击)事件监听器(并添加一些样式),这样用户不能添加相同的项目两次,尽管多次点击它。

这在当前的 Angular 实现中可行吗?

最佳答案

在条件下尝试:

(click)="!item.isAdded && addItemToArray(item)"

关于javascript - 如果满足条件,则停止 div 上的点击事件——Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49237514/

相关文章:

javascript - YouTrack 工作流程 : Prevent Deletion

html - HR 在 Firefox 中显示不同

Angular - 在兄弟组件之间共享数据而不在实例之间共享

angular - 用 Angular 组件替换 IdentityServer4 登录页面

javascript - DebugElement.children 的顺序不同于 NativeElement.children

javascript - Ben Awad 视频教程问题与 npx mikro-orm 迁移 :create

javascript - 创建网页插件。如何包含 css 和渲染元素?

javascript - 一页上有几个 disqus-thread

html - 影响 Web 浏览器资源加载顺序

html - CSS 3D效果横幅