* ngFor问题

时间:2019-03-27 08:44:14

标签: angular ngfor

我有一个书模态,它有一个名称和启用标志。如果已启用该书,则需要在视图中显示一个购买按钮。

示例代码:

<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调用。对于两本书,这种方法层出不穷。我在做什么错了?

enter image description here

2 个答案:

答案 0 :(得分:3)

这是正常现象,只要您的角度应用程序中运行了更改检测周期,便会获取这些日志,以查看这两本书是否已更改,如果是,则更新视图。更改检测周期事件可能发生在最常见的情况下,例如浏览器事件(例如单击,滚动,ajax请求,计时器事件等)。这就是为什么我们应该在属性获取器中编写尽可能少的代码的原因。

答案 1 :(得分:0)

发生这种情况是因为更改检测循环多次调用了您的函数。为什么不使用

<button *ngIf="book.isEnable" ... >

还是在显示图书时需要采取其他措施?

Read more about change detection in angular