2013-02-14 3 views
0

Я пытаюсь использовать функцию wrap внутри функции compiledirective.Почему использование обертки внутри функции компиляции директивы вызывает бесконечный цикл?

Следующая вызовет бесконечный цикл и обрушить браузер:

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

    return linker; 
} 

Почему это происходит?

ответ

5

Я думаю ... первый раз, когда ваша compiler функция вызывается, она оборачивает элемент (то есть, элемент в HTML, где вы кладете атрибут директивы) внутри нового < DIV> </DIV>. Angular рассматривает это как новый элемент и компилирует его ... находит вашу директиву, которая снова вызывает функцию компилятора, снова обертывает ее, а Angular рассматривает это как новый элемент ... ad infinitum.

+0

Это помогло. благодаря – Dustin

Смежные вопросы