2016-01-25 2 views
0

У меня есть директива с динамическими шаблонами. После использования метода replaceWith мой метод addClass не вступает в силу.Динамические шаблоны AngularJS и replaceWith

var template = ''; 
switch (scope.type) { 

    case 'type1': 
     template = '<div>Type1</div>'; 
     break; 

    case 'type2': 
     template = '<div>Type2</div>'; 
     break; 
} 

element.replaceWith(template); 
element.addClass('test'); 

JsFiddle https://jsfiddle.net/L5z5Ld9u/1/

+0

Но класс не отображается в div –

ответ

0

Ваш код не работает, потому что элемент полностью заменен шаблоном, поэтому вы должны добавить класс в шаблон, а не к элементу:

var template; 
switch (scope.type) { 

    case 'type1': 
    template = angular.element('<div>Type1</div>'); 
    break; 

    case 'type2': 
    template = angular.element('<div>Type2</div>'); 
    break; 
} 

element.replaceWith(template); 
template.addClass('test'); 

Fiddle

+0

Ok. Это работы. Затем я добавляю новый элемент кликом, и я вижу тег https://jsfiddle.net/6g35519z/1/ –