首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2调用函数4次

角2调用函数4次
EN

Stack Overflow用户
提问于 2017-01-14 09:39:47
回答 1查看 983关注 0票数 0

请参考此扑通

它是基于角快速启动样例,这里模板是调用一个函数。

代码语言:javascript
复制
import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `<h1>Hello {{name}}</h1>{{print()}}`
})
export class AppComponent { 
  name = 'Angular';

  public print() {
    console.log(`Called`);
    return "Hello";
  }
}

打印函数被调用4次,但UI只显示了3次。(参见第二次重击)。在第二次重击中,角确实抛出错误表达式在检查后发生了变化。

如果我启用了生产模式,它只会被调用两次。

我的问题是:

  1. 有什么办法可以避免这种情况吗?或者,我应该知道这一点,不应该在模板调用的函数中执行繁重的操作。
  2. 这是消化周期造成的吗?
  3. 在dev模式中,为什么第四周期不刷新UI,为什么它在第3次迭代时停止,但是函数第4次被调用?
EN

回答 1

Stack Overflow用户

发布于 2017-01-14 09:42:38

不建议在function中使用Angular2 bindings/interpolation.

您应该使用变量,如下所示,

代码语言:javascript
复制
template: `<h1>Hello {{name}}</h1>{{myVar}}`


 name:string='';

 constructor(){
    this.print();        
 }

 public print():string {
    console.log(`Called`);
    this.name = "Hello";
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41648577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档