说我有以下内容:
<div myDiv>
<!-- Some more tags -->
<div ng-click="run()">Run</div>
</div>
我想在<div myDiv>
执行时用新的<div myDiv>
替换整个run()
。我如何使用Angular实现这一目标?
请注意:执行run()
时,我希望完全删除整个<div myDiv>
并替换为我将通过AJAX调用获得的新<div myDiv>
。这不像是拥有一组初始内容,然后加载更多内容。
答案 0 :(得分:0)
您必须使用element指令,然后将replace
属性设置为true:
app.directive('myDiv', function(){
return {
restrict: 'E',
replace: true,
template: '<div>' +
'<div ng-click="run()">Run</div>' +
'</div>',
link: function(scope, element, attrs){
scope.run = function(){
// do smth here
};
}
}
});
渲染前的HTML:
<my-div></my-div>
渲染后的HTML:
<div>
<div ng-click="run()">Run</div>
</div>