我有一个简单模板的指令:
restrict: 'E',
link: function(scope, element, attrs) {},
template: '<ul></ul>
如何在链接函数中使用代码动态添加模板li元素? 我的列表是HTML元素:
var newElement = $compile("<li><div>my text</div></li>")(scope);
element.append(newElement);
这不会将newElement添加为ul ...
的子元素答案 0 :(得分:4)
element
不是ul
,而是您的指令包装元素。您需要先找到列表元素:
var newElement = $compile("<li><div>my text</div></li>")(scope);
element.find('ul').append(newElement);
答案 1 :(得分:0)
另一种选择是用指令模板
替换指令包装元素restrict: 'E',
replace: true,
link: function(scope, element, attrs) {},
template: '<ul></ul>
然后您可以使用原始代码附加新元素
var newElement = $compile("<li><div>my text</div></li>")(scope);
element.append(newElement);