{{ 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";
    }
}
Другие вопросы по тегам