【发布时间】:2017-02-07 10:31:45
【问题描述】:
我的 Angular2 应用程序的 *ngFor 数组中有一个按钮元素。
按钮的结构是:
<button>
<span class="price">{{ product.price }}</span>
<span class="text"> Add me! </span>
</button>
当我点击它时,我需要删除跨度.text 内的文本并将其他内容放入其中,比如<span class="text"> Added! </span> 不显示.price 跨度插值。
我尝试了以下方式:
<button [textContent]="isPressed? 'Added!' : 'Add me' "></button>
并在类中声明相应的属性,如:
private isPressed = false;
它工作正常,但问题是它同时更改所有按钮,我只需要更改单击的那个。
什么是让它正常工作的正确方法?
【问题讨论】:
-
而不是
isPressed使用像product.isAdded这样的语义变量。这样,按钮的状态就会与相关产品绑定。 -
为什么它不能与 isPressed 一起工作,但与 isAdded 一起工作得很好?请提交您的答案,以便我为您的帮助投票
-
原因不是措辞,而是
product,它指的是按钮相关的特定对象。有很多产品(这就是您需要循环的原因),因此您可以为每个产品保存状态。每个按钮显示一个特定产品的状态。如果您使用像isPressed这样的通用变量,则只有一个,并且所有按钮都在关注它。下面的答案向您展示了如何调整代码。支持他们:-)
标签: angular button typescript