如果从javascript中删除元素,如何在angularjs中手动销毁范围?

ram*_*993 2 javascript angularjs angularjs-scope

我正在将角度模板插入元素.考虑以下示例,

<p>
  <c ng-controller="ctrl">
    ...
  </c>
</p>
Run Code Online (Sandbox Code Playgroud)

如果我从javascript中删除c.会有什么副作用?(范围泄漏)如何避免这种情况?

我用过这个,

function render() {
    var lastScope = angular.element('c').scope();
            
    if(lastScope) {
        lastScope.$destroy();
    }

    $('c').remove();

    getTemplate(context + '/c.html', function(template) {
        if (template) {
            angular.element(document).injector().invoke(['$compile', '$rootScope', function($compile, $rootScope) {
                $('p').append($compile(template)($rootScope));
                $rootScope.$apply();
            }]);
        } 
    });
}
Run Code Online (Sandbox Code Playgroud)

当我点击标签渲染功能时,每次都会调用.还有其他的消化吗?

Val*_*lov 6

创建新范围并将其销毁如下:

var newScope = $rootScope.$new(true);
$compile(template)(newScope);

//later
newScope.$destroy();
Run Code Online (Sandbox Code Playgroud)