递归指令和无限循环

时间:2013-09-18 15:00:01

标签: angularjs

看起来我在AngularJS指令编译中以某种方式形成了一个无限循环 请帮我看看如何解决这个问题。

Plunker:http://plnkr.co/edit/2mvvCGYYYahOcEnWON9k

在阅读代码之前不要按“运行” - 您的浏览器可以停止响应。

指令代码:

    directive(
  'mlgPermissionCard', function() {
    return {
      templateUrl: 'mlgPermissionCard.html',
      restrict:    'AE',
      scope:       {
        branch: '=mlgPermissionCard'
      }
    };
  })

模板:

<div>
    <div class="pull-right"><span class="glyphicon glyphicon-cog"></span></div>
    <div>{{ branch.name }}</div>
    <div class="list-group">
        <div class="list-group-item" ng-repeat="child in branch.children">-->
            <div mlg-permission-card="child"></div>
        </div>
    </div>
</div>

更新
嵌套指令的工作代码可能对某人有用:
https://github.com/MLG/angular-mlg-permission-card

1 个答案:

答案 0 :(得分:5)

我认为你正在遇到一些Angular编译/链接问题,因为你在其自身内部递归使用该指令。

相反,如果您在后期链接功能中手动组装模板,它将起作用。

这是你的Plunker的工作分叉。 http://plnkr.co/edit/E5fycjLYzKw1KxRqv9uj