我有一个指令,用一些常规的HTML替换我的自定义标签.
有一些我想删除的属性.例如,给出语法
有一些我想删除的属性.例如,给出语法
<ui mybutton width="30"></mybutton>
我的指令将其转换成
<div width="30" class="btn">bla bla </div>
我想删除“width = 30”并添加style =“width:{{old width value here}}”
我一直在尝试编译和链接功能.我应该在编译或链接功能中这样做吗?
现在看到它在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显示了几千次)
除非我缺少一些其他要求,否则您应该能够使用隔离范围和模板:
app.directive('backbutton',function(){ return { restrict: 'A',replace:true,scope: { x: '@',template:'<button style="width: {{x}}px; height: {{y}}px">A back-button template</button>',link: function (scope,element,attrs) { element.removeAttr('x').removeAttr('y'); } } });