在ng中动态加载模板
我正在尝试在ng-repeat
内动态加载模板:
<ul>
<li ng-repeat="prop in entity" >
<div ng-include src="prop.template"></div>
</li>
</ul>
prop.template
等于模板的URL,例如'partials/form/text.html'
。 上面的代码会产生以下错误:
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中?
http://docs.angularjs.org/api/ng.$rootScope.Scope#$digest
处理当前范围及其子项的所有观察者。 因为观察者的监听者可以改变模型,所以$ digest()不断调用观察者,直到没有更多的监听者开火。 这意味着有可能陷入无限循环。 这个函数会抛出'超出最大迭代限制'。 如果迭代次数超过10次。
问题不在于这里的代码,它应该是完美的。 在这里查看工作示例:http://jsfiddle.net/fmjf8/2/
问题是你可能在你的ngRepeat
数组中有太多的元素,或者你的数组模板,或者你所包含的模板做了太多的事情,提高了角度的无限循环保护。 我投了第二个票
我知道这有点不相关,但我一直在寻找一个类似的问题,我的任务在某个时间点在这里。 而且因为互联网上没有太多关于角的来源,我在这里为其他不幸的人写这篇文章,所以对我一点都没有。
我与ng-include的问题:
我从模板(html文件)视图中加载了来自routeparameters的ng-view,并且一个ng-include引用了其中一个模板。 它在角度方面产生了完全相同的响应。
根据我的理解,这发生了:
当ng-include尝试将模板html文件嵌入到原始模板文件中时,它会尝试从头开始执行,这意味着包括原始html文件,共享文件,模板的所有内容都将重新加载。
templateX.html-> ng-include(templateY) - > templateX.html - > templateY ....所以实际的无限循环,摘要只能防止浏览器由于过多的DOM而崩溃。
然后我试图使用完整的路径名称而不是任何相对路径,它解决了我的问题。
也许你可以在ng-include里面尝试全路径名来解决你的问题。
希望这有所帮助。
链接地址: http://www.djcxy.com/p/47909.html上一篇: Dynamically load template inside ng
下一篇: document.write Not working when loading external Javascript source