0

我正试图围绕 angularjs 指令。我有一个父指令,在我的页面上有 4 个实例。其中一个父指令包含 CHILD 指令的一个实例。

但是,子指令的链接功能似乎运行了 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
4

2 回答 2

0

您是否收到任何控制台错误?

我问的原因是在您的子“myTable”指令中,您将范围定义为字符串而不是空对象。可能是因为这个作用域没有被隔离,而是使用父作用域。

于 2013-04-28T10:43:32.720 回答
0

我知道我迟到了,但这个问题的答案很简单。只要您拥有指令的实例,该link函数就会被调用多次。

于 2015-10-07T20:02:03.603 回答