递归Ng-include导致错误:$ rootScope:infdig Infinite $ digest循环

时间:2016-11-29 11:55:18

标签: angularjs angularjs-ng-include

我有一个递归的Ng-include导致错误:$ rootScope:infdig Infinite $ digest Loop

在我的ctrl:

function getTemplate(elementType) {
        console.log(elementType + '_formElement.html');
        return elementType + '_formElement.html';
    };

在我看来:

<div ng-repeat="element in elementList track by $index" ng-init="templateID=vm.getTemplate(element.elementType)">
    <ng-include src="templateID"></ng-include>
</div>

结果:达到10 $ digest()迭代次数。中止!

  

观察者在最后5次迭代中被解雇:[[{“msg”:“fn:function   (C,E,F,G){F = d&安培;&安培; G G [0]:一个(C,E,F,G);返回   b(f,c,e)}“,”newVal“:3},{”msg“:”fn:function(a){return   d(A)} “ ”的newval“: ”“},{ ”msg“ 中: ”templateID“, ”的newval“: ”ROW_formElement.html“}],[{ ”msg“ 中:” FN:   函数(c,e,f,g){f = d&amp;&amp; g?g [0]:a(c,e,f,g); return   b(f,c,e)}“,”newVal“:3},{”msg“:”fn:function(a){return   d(A)} “ ”的newval“: ”“},{ ”msg“ 中: ”templateID“, ”的newval“: ”ROW_formElement.html“}],[{ ”msg“ 中:” FN:   函数(c,e,f,g){f = d&amp;&amp; g?g [0]:a(c,e,f,g); return   b(f,c,e)}“,”newVal“:3},{”msg“:”fn:function(a){return   d(A)} “ ”的newval“: ”“},{ ”msg“ 中: ”templateID“, ”的newval“: ”ROW_formElement.html“}],[{ ”msg“ 中:” FN:   函数(c,e,f,g){f = d&amp;&amp; g?g [0]:a(c,e,f,g); return   b(f,c,e)}“,”newVal“:3},{”msg“:”fn:function(a){return   d(A)}”, “的newval”: “”},{ “msg” 中: “templateID”, “的newval”: “FIELD_formElement.html”}],[{ “msg” 中: “templateID”, “的newval”: “TEXT_field.html”},{ “味精”:“FN:   function(a){return d(a)}“,”newVal“:”“}]]

CONSOLE.LOG:

  ROW_formElement.html
7 ROW_formElement.html
  FIELD_formElement.html

我知道我可以像以下那样增加TTL,但还有其他解决方案吗?

angular.module('myApp',[]) .config(function($rootScopeProvider) { $rootScopeProvider.digestTtl(number); //some number bigger then 10 })

2 个答案:

答案 0 :(得分:0)

经过大量搜索,我认为我的代码没有错误。

回答here并在此plunkr中显示,这就是角度的工作原理。
除了设置比10更高的摘要TTL数之外,似乎没有其他解决方案。

angular.module('myApp',[]) .config(function($rootScopeProvider) { $rootScopeProvider.digestTtl(number); //some number bigger then 10 })

答案 1 :(得分:0)

我遇到了同样的问题,我按照此链接上的建议进行操作,结果奏效了!:

Building Nested Recursive Directives in Angular