我需要在我的webapplication中显示一个潜在的巨大树视图。在测试期间,我发现使用带有ngRepeat和ngInclude的角度的标准模板渲染方法表现不够(显示信息大约需要5秒)。删除绑定(因为它没有用)没有结果。
经过一些谷歌搜索后,我找到了一个名为scalyr https://github.com/scalyr/angular的模块。这应该真正优化渲染的性能。
我的代码:
<script type="text/ng-template" id="tree_item_renderer.html">
{{data.name}}
<ul>
<li sly-repeat="data in data.childNodes " ng-include="'tree_item_renderer.html'"></li>
</ul>
</script>
<ul>
<li sly-repeat="data in vm.rows" ng-include="'tree_item_renderer.html'"></li>
</ul>
运行此代码时,我收到异常
Error: [$compile:multidir] Multiple directives [slyRepeat, ngInclude] asking for transclusion on: <li sly-repeat="data in data.childNodes " ng-include="'tree_item_renderer.html'">
这可以解决吗?或者用ng-Include运行scalyr是不可能的。
答案 0 :(得分:1)
同一元素上有多个转换存在问题,但这是一个简单的解决方案:
<li sly-repeat="data in data.childNodes ">
<div ng-include="'tree_item_renderer.html'"></div>
</li>
有一个模块提供multiple transclusions,但我从来没有玩过它,所以我不确定它是否有效。
当你弄明白你的树时,告诉我狡猾的重复是否值得,因为我还有一棵大树要建造。