2016-07-14 2 views
0

В угловых 1, можно сделатьNG2 инициализация DOM свойство один раз и падение обнаружения изменений

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

установить innerHTML пролета без создания Бодрствующего.

В угловом 2, я думаю о нескольких способах этого сделать, но я не знаю, остается ли детектор изменений после инициализации. Поскольку я просто хочу инициализировать 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

ответ

1

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

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

Более подробная информация: http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html и http://victorsavkin.com/post/110170125256/change-detection-in-angular-2

+0

Спасибо за вход. Предел с помощью ChangeDetectionStrategy, похоже, относится ко всему шаблону. Будет ли это работать, если я хочу, чтобы некоторые вещи были «OnPush»? – evenstar

+1

Сделайте эти свойства частью другого 'Директивы' или' Компонента' –

Смежные вопросы