使用我读取的属性的指令,应用一些逻辑(对于此示例控制台日志),然后从HTML中删除该属性(有效的HTML,清洁度和可访问性)。当属性值是字符串时,这种方法有效,但如果值是表达式,则不会删除属性。
伪代码:
的index.htm
Working: <my-directive foo="123"></my-directive>
Not working: <my-directive foo="{{myExpressionValue}}"></my-directive>
directive.js
app.directive("myDirective", function(){
return {
template:"<div>Hello World</div>",
compile: function(element, attributes){
// Do whatever with attribute
console.log(attributes.foo);
// Now remove the attribute
element.removeAttr('foo');
}
};
});
输出
Working: <div>Hello World</div>
Not working: <div foo="123">Hello World<div>
=============================================== ===========
我希望这两条指令能够删除“foo”&#39;属性。发布链接不起作用。假设表达式在指令后面的某处进行了评估......?
谢谢!
答案 0 :(得分:0)
试试这个指令
app.directive('myDirective', function() {
return {
template: "<div>Hello World</div>",
compile: function(tElement, tAttr) {
tAttr.$set('foo', null);
}
}
})
work plnkr:http://plnkr.co/edit/aq7ZYo8izcjDDLPUsLjZ?p=preview