Почему Angular 2+ innerHTML вызывает метод несколько раз в одном выражении, как решить эту проблему - PullRequest
1 голос
/ 14 марта 2019

У меня такой шаблонный видздесь myfunction () звонит несколько раз, и я получаю несколько предупреждений, может кто-нибудь помочь мне решить эту проблему.

стек для этого равен ссылка

заранее спасибо

1 Ответ

1 голос
/ 14 марта 2019

Вы можете использовать чистую трубу, чтобы перезапустить ее, только если изменились входы в трубу:

@Pipe({name: 'functionCaller'})
export class FunctionCallerPipe {
    transform(func: any, ...args: any[]): any {
        return func(...args);
    }
}

И используйте это так:

<p [innerHTML]="myfunction| functionCaller : name"></p>
import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  myfunction(name: string){
    alert(name);
    return '<div>' + name + '</div>';
  }
}
...