ng2 初始化 DOM 属性 一次并删除更改检测

ng2 initialize DOM property once and drop change detection

在angular1,我能做到

<span ng-bind="::expression"></span>

在不创建观察者的情况下设置 span 的 innerHTML。

在angular2中,我正在考虑几种方法,但我不知道初始化后变化检测器是否仍然存在。因为我只想初始化 innerHTML 一次,所以最好在第一次通过后删除更改检测。有人可以帮忙吗?

  1. <span [innerHTML]="expression"></span>
  2. <span innerHTML="{{expression}}"></span>
  3. <span>{{expression}}</span>

关于2,我在官方文档中发现在初始化字符串的时候可以省略括号,但是不知道结合{{}}插值会怎么样。 https://angular.io/docs/ts/latest/guide/template-syntax.html#!#one-time-string-initialization

您可以更改组件的方式更改检测:

@Component({changeDetection:ChangeDetectionStrategy.OnPush})
class MyComponent {
  ...
}

更多信息:http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html and http://victorsavkin.com/post/110170125256/change-detection-in-angular-2