angular2 - 当我从模板中的Angular 2类调用方法时的无限循环

时间:2017-03-28 23:43:03

标签: angular

当我通过插值调用模板中的组件方法时出现问题:{{get_method()}}。该方法运行,但在无限循环中,我不知道为什么。请帮忙吗?

方法的代码是这样的:

get_name() {
  console.log("bonjour");
}

我在我的模板中这样称呼它:

{{get_name()}}

这就是结果:

enter image description here

3 个答案:

答案 0 :(得分:15)

您不应该在模板中使用方法,因为每次Angular运行更改检测时,都会调用该方法,这种方法可能经常发生。所以实际上这不是一个无限循环,只是在每次变化检测时调用该方法。

为避免这种情况,您需要更改代码以处理组件中方法的逻辑,并在模板中使用变量。

答案 1 :(得分:2)

我终于找到了解决方案,将检测策略更改为OnPush,以获取更多信息,访问此链接Change Detection Strategy: OnPush

答案 2 :(得分:0)

在您的组件中

getName:string;
ngOnInit() {
   this.get_name();
}
get_name() {
    console.log("bonjour");
    this.getName = "bonjour";
}

并在您的视图文件中

{{getName}}