{{ call() }} в шаблоне выполняет блок метода несколько раз?
Здесь операторы в тестовом методе вызываются несколько раз. Почему это происходит? DOM воссоздается AngularJS2 несколько раз?
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<div>Method Call {{test()}}</div>>`
})
export class AppComponent {
name = 'Angular';
test() {
console.log("Test is called");
}
}
1 ответ
Решение
{{test()}}
оценивается каждый раз при обнаружении изменения угловых прогонов, что может быть довольно часто.
Привязка к функции или методам с точки зрения препятствует. Предпочитаю присваивать результат вызова метода свойству и связываться с этим свойством.
@Component({
selector: 'my-app',
template: `<div>Method Call {{someValue}}</div>>`
})
export class AppComponent {
ngOnInit() {
this.test();
}
name = 'Angular';
test() {
this.someValue = "Test is called";
}
}