对于我的项目,我要求定义不修改 DOM 的指令,也不在 DOM 中留下它们存在的工件。我似乎无法使用 AngularJS 完成这项工作。
考虑这些例子:
<div empty-arg="some-param"></div>
<div null-arg="another-param"></div>
相关指令定义如下:
var module = angular.module( 'component', [] );
module.directive('emptyArg', function() {
template: '',
replace: true,
scope: false,
link: function() { // ... }
};
module.directive('nullArg', function() {
template: null,
replace: true,
scope: false,
link: function() { // .... }
};
编译后,我希望生成的 DOM 元素如下所示:
<div></div>
<div></div>
但是缺少模板似乎会导致 AngularJS 忽略替换请求,从而使生成的 DOM 元素看起来像这样:
<div empty-arg="some-param"></div>
<div null-arg="another-param"></div>
如何强制 AngularJS 在编译后的 DOM 中删除这些属性?
一个 jsFiddle 展示了这一点,可以在这里找到:
http://jsfiddle.net/vankirkc/ezN3M/34/
更新:
可以在创建后删除创建的属性,但我真正要寻找的是某种利用模板定义参数来拦截 DOM 元素的创建的方法,这样它就不会复制此指令。看来这在 1.0.3 版中是不可能的。