AngularJS替换整个元素

时间:2014-03-23 07:30:44

标签: angularjs

说我有以下内容:

<div myDiv>
   <!-- Some more tags -->
   <div ng-click="run()">Run</div>
</div>

我想在<div myDiv>执行时用新的<div myDiv>替换整个run()。我如何使用Angular实现这一目标?

请注意:执行run()时,我希望完全删除整个<div myDiv>并替换为我将通过AJAX调用获得的新<div myDiv>。这不像是拥有一组初始内容,然后加载更多内容。

1 个答案:

答案 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>