【问题标题】:ng2 initialize DOM property once and drop change detectionng2 初始化 DOM 属性一次并删除更改检测
【发布时间】:2016-07-14 21:03:40
【问题描述】:

在角度 1 中,我可以做到

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

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

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

  1. &lt;span [innerHTML]="expression"&gt;&lt;/span&gt;
  2. &lt;span innerHTML="{{expression}}"&gt;&lt;/span&gt;
  3. &lt;span&gt;{{expression}}&lt;/span&gt;

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

【问题讨论】:

    标签: javascript angularjs angular angular2-template


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的意见。 ChangeDetectionStrategy 的限制似乎是它适用于整个模板。如果我只想将某些属性设置为“OnPush”,它会起作用吗?
    • 使这些属性成为另一个 DirectiveComponent 的一部分
    猜你喜欢
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多