在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.$ro​​otScope.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