我有一个非常特殊的情况。我的演示指令是
.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的值更改为其他网址。 但是,如果不设置 repalce = true ,我将无法执行此操作。设置替换= true 后,我可以使用elem.attr(&#39; href&#39;,mynewurl)轻松更改模板&#39; s href 的值。< / p>
replace = true 在最新版本的角度中按此折旧 AngularJs documentation
请让我知道我失踪的地方。
答案 0 :(得分: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');
顺便说一句,我认为gmail的地址是mail.google.com:)