我有一个书模态,它有一个名称和启用标志。如果已启用该书,则需要在视图中显示一个购买按钮。
示例代码:
<div class="someclass">
<p>Highlight me</p>
<section><p>Also hightlight me</section>
<section>
<section>
<p>Also hightlight me
</section>
</section>
<div>
<p>Do not highlight me</p>
</div>
</div>
问题: 我只有两本书,但是当我运行代码时,控制台中会出现多个日志。上面的代码只是一个示例。真正的代码在该getEligible方法内部具有api调用。对于两本书,这种方法层出不穷。我在做什么错了?
答案 0 :(得分:3)
这是正常现象,只要您的角度应用程序中运行了更改检测周期,便会获取这些日志,以查看这两本书是否已更改,如果是,则更新视图。更改检测周期事件可能发生在最常见的情况下,例如浏览器事件(例如单击,滚动,ajax请求,计时器事件等)。这就是为什么我们应该在属性获取器中编写尽可能少的代码的原因。
答案 1 :(得分:0)
发生这种情况是因为更改检测循环多次调用了您的函数。为什么不使用
<button *ngIf="book.isEnable" ... >
还是在显示图书时需要采取其他措施?