关于html:在ng-repeat中动态加载模板

Dynamically load template inside ng-repeat

我尝试在ng-repeat中动态加载模板:

1
2
3
4
5
6
7
8
9
<ul>

    <li ng-repeat="prop in entity">
       
   
</li>


</ul>

prop.template等于模板的url,如'partials/form/text.html'。上述代码产生以下错误:

1
2
Error: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["prop.template; newVal: "partials/form/text.html"; oldVal: undefined","prop.template; newVal: "partials/form/text.html"; oldVal: undefined" .... (and so on)

如何从prop.template中获取模板的URL,并将该文件中的HTML插入ng-repeat中的DOM?


我知道这有点不相关,但我一直在寻找一个类似的问题,我的探索在某种程度上使我想到这里。由于网络上没有关于安格尔的太多信息来源,所以我在这里为其他不幸的人写了这篇文章,所以对我来说有点赤裸裸。

我对NG的问题包括:

我从RouteParameters中使用ng视图加载了模板(HTML文件)视图,而ng包含在其中一个模板中引用其中一个模板。它在角侧产生了完全相同的响应。

据我所知,这种情况会发生:

当ng-include试图将模板html文件嵌入到原始文件时,它会从头开始尝试,这意味着每次都会重新加载,包括原始html文件、共享文件、模板所有内容;

templatex.html->ng include(templatey)->templatex.html->templatey….因此,实际的无限循环Digest只会防止浏览器因过度的DOM而崩溃。

然后我尝试使用完整的路径名而不是任何相对路径,它解决了我的问题。

也许您可以尝试在ng include中使用完整的路径名来解决您的问题。

希望这有点帮助。


http://docs.angularjs.org/api/ng.$rootScope.Scope#$digest

Process all of the watchers of the current scope and its children. Because a watcher's listener can change the model, the $digest() keeps calling the watchers until no more listeners are firing. This means that it is possible to get into an infinite loop. This function will throw 'Maximum iteration limit exceeded.' if the number of iterations exceeds 10.

问题不在于这里的代码,它应该工作得很好。请参见下面的工作示例:http://jsfiddle.net/fmjf8/2/

问题是,要么你的ngRepeating数组中的元素太多,要么你的数组中的模板太多,要么你所包含的模板做了太多的事情,提高了角度的无限循环保护。我投第二票