我有一个指令用一些常规的 HTML 替换我的自定义标记。我想删除一些属性。例如,给定语法
<ui mybutton width="30"></mybutton>
我的指令将其转换为
<div width="30" class="btn">bla bla </div>
我想删除它"width=30"
并添加style="width:{{old width value here}}"
我一直在尝试编译和链接功能。我应该在编译还是在链接函数中这样做?
我以为我必须在 compile 函数中执行此操作,因为我想在模板中进行修改。
在http://jsfiddle.net/WptGC/2/ 中查看它警告:您的浏览器可能会挂起! 安全地观看它http://jsfiddle.net/WptGC/3/使一切崩溃的代码已被注释。
.directive('mybutton', function($compile) {
return {
restrict: 'A',
//transclude: true,
template: '<div class="this is my subscreen div" style="width:{{width}}"></div>',
replace: false,
/*scope: {
width: '@',
height: '@',
x: '@',
y: '@'
},*/
compile: function($tElement, $tAttrs) {
console.log("subscreen template attrs:");
console.log($tAttrs);
var el = $tElement[0];
//el.getAttribute('width');
var stylewidth = el.getAttribute('width');
el.removeAttribute('width');
return function(scope) {
$compile(el)(scope);
}
}
}
})
我只是得到一个奇怪的循环(console.log 显示了几千次)