2016-10-27 4 views
1

Я пытаюсь связать с innerHtml, сохраняя привязку данных. Это не работает (выходы {{myVar}}).Angular2 innerHtml привязка перерывов связывания данных

@Component({ 
    selector: "test", 
    template: ` 
    <div [innerHtml]="myHtml"></div> 
    `, 
}) 
export class TestComponent{ 
    title = "My Title"; 
    myHtml: SafeHtml; 

    constructor(private sanitizer: DomSanitizer){ 
    this.myHtml = sanitizer.bypassSecurityTrustHtml("<h1>{{title}}</h1>"); 
    } 
} 

В моем реальном приложении, myHtml является содержание файла SVG (поэтому мне нужно bypassSecurityTrustHtml) и часто меняется, так что я не могу поставить его в шаблоне (он может исходить из 20 различных SVG файлы).

Если бы был способ динамически установить templateUrl для компонента, это также решило бы мою проблему, но после долгого поиска это не представляется возможным.

ответ

2

Angular2 не обрабатывает HTML-код динамически, поэтому {{}}, [], (), ... не должен работать. Также не создаются никакие компоненты или директивы, даже если HTML, добавленный таким образом, соответствует их селекторам.

Обработано только разметка, добавленная статически к шаблону компонентов.

Equivalent of $compile in Angular 2 демонстрирует подход, если он вам действительно нужен.

+2

Ваша ссылка, кажется, то, что я искал, спасибо (за это и сотню других заданий Angular2, на которые вы ответили и которые мне помогли) – maxbellec

+1

Добро пожаловать :) –

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

  • Нет связанных вопросов^_^