为什么使用wrap inside指令编译函数会导致无限循环?

Dus*_*tin 0 angularjs angularjs-directive

我试图在wrap函数内部使用compile函数directive.

以下将导致无限循环并使浏览器崩溃:

function compiler(tElement, tAttrs, transcludeFn) {
    var wrapper = angular.element('<div />');
    tElement.wrap(wrapper);

    return linker;
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Mar*_*cok 5

我猜...第一次compiler调用函数时,它会将元素(即HTML中放置指令属性的元素)包装在新的<div> </ div>中.Angular将此视为一个新元素并将其编译...找到你的指令,再次调用编译器函数,再次包装它,Angular将其视为一个新元素... ad infinitum.