2014-11-04 2 views
0

У меня очень своеобразная ситуация. Моя демо директива являетсяНевозможно изменить значение атрибута в шаблоне в angularjs

.directive('sampleanchortag',function(){ 
    return{ 
     restrict:'EA', 
     //replace:true,// 
     template:'<a href="https://www.google.com">Click Here</a>', 
     link:function(scope, elem, attrs){ 
      elem.attr('href','https://www.gmail.com'); //works when set replace=true 
     } 
    }; 
}); 

По умолчанию я устанавливаю значение HREF к URL в шаблоне & в ссылка функции Я меняю значение HREF к другому URL. Однако я не могу это сделать без установки repalce = true. После установки replace = true Я могу легко изменить значение template's href using elem.attr ('href', mynewurl).

заменить = истинный амортизируется в последней версии угловой, как в этом AngularJs documentation

Пожалуйста, дайте мне знать, где я пропускаю.

ответ

0

Если изменить Attr с вами код (без замены):

elem.attr('href','https://www.gmail.com'); //elem is sampleanchortag not anchor element 

Тогда ваш HTML структура будет:

<sampleanchortag href="https://www.gmail.com"> 
    <a href="https://www.google.com"></a> 
</sampleanchortag> 

Если вы не хотите, чтобы заменить директиву элемент, то вы должны изменить свой код в это:

elem.find("a").attr('href', 'https://www.gmail.com');  

Here is JSFIDDLE.

Кстати, я думаю, что адрес gmail - mail.google.com:)

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