2013-04-28 1 views
0

Я пытаюсь обвести голову вокруг директив angularjs. У меня есть родительская директива, с четырьмя экземплярами на моей странице. Одна из родительских директив содержит экземпляр директивы CHILD.Условные функции для дочерних директив AngularJS, срабатывающие несколько раз для каждой родительской директивы на странице

функция связывания ребенка директивы, как представляется, работать в 4 раза, однако, как я вижу следующее в моей консоли 4 раза:

child linking function 

Любая идея, почему/как исправить? Благодаря!

РОДИТЕЛИ:

Module.directive 'collapseWidget',() -> 
    directive = 
    restrict: 'A' 
    transclude: true 
    template: viewCollapseWidget 
    scope: 
     title:  '@title' 
     widgetThemis: '@widgetThemis' 
     color:  '@color' 
     model:  '=' 

    #replace: true 
    compile: (element, attrs, transclusionFunc) -> 
     (scope, iterStartElement, attrs) -> 

     #if scope.buttons 
      #console.log scope.buttons 
     scope.collapsed = false 

     scope.toggle =() -> 
      scope.collapsed = !scope.collapsed 

     origElem = transclusionFunc scope 
     content = origElem.text() 
     scope.orig = content 
     scope.obj = content 

РЕБЕНОК:

Module.directive "myTable", -> 
     directive = 
     restrict: 'A' 
     scope: 'isolate' 
     link: (scope, element, attrs) -> 
      console.log 'child linking function' 
      return 

ответ

0

Вы получаете какую-либо ошибку консоли?

Причина, по которой я спрашиваю, заключается в том, что в директиве myTable вашего ребенка у вас есть область, определенная как строка, а не пустой объект. Возможно, из-за этого область видимости не изолирована и вместо этого использует родительскую область.

0

Я знаю, что взвешиваю в последнее время, но ответ на этот вопрос прост. Функция link будет вызвана так много раз, как у вас есть экземпляры этой директивы.

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