Как инкапсулировать динамически добавляемые элементы в Angular 2?

Попытка заставить MDL работать с Angular2.

С эмуляцией теневого DOM angular инкапсулирует все css и html, которые он получает из кода. Но когда я использую componentHandler.upgradeElement(), он создает новые элементы без инкапсуляции.

Что я должен сделать, чтобы он тоже был инкапсулирован?


person Lodin    schedule 28.10.2015    source источник


Ответы (1)


Добавление этого простого элемента директивы mdl!

import {Component, ElementRef } from 'angular2/core';
declare var componentHandler: any;


@Component({
    selector: '[mdl]',
    template: `<ng-content></ng-content>`
})



    export class MdlComponent {

    constructor(public el: ElementRef) {

        MdlComponent.mdlWrapper(el);

    }

    static mdlWrapper(element: ElementRef) {

        componentHandler.upgradeElement(element.nativeElement);
    }
}
person Alessandro Avagliano    schedule 03.11.2015