我有这两个用于树视图的模板,我想使用第一种方法,但似乎存在问题或者我错过了一些东西。
第一种方法(可取但不起作用)
TreeTemplate.html
<ul>
<li ng-repeat="node in c.model" style="list-style-type: none;" ng-include="'/_Core/DirectiveCore/Tree/NodeTemplate.html'">
{{node.text}} <!--It wont show up , the problem is here, any tags will not show up in result-->
</li>
</ul>
NodeTemplate.html
<ul ng-if="node.nodes">
<li ng-repeat="node in node.nodes" style="list-style-type: none;" ng-include="'/_Core/DirectiveCore/Tree/NodeTemplate.html'">
{{node.text}}
</li>
TreeTemplate.html中<li></li>
中的所有内容都不会出现ng-include
第二个Approch(不可取但有效)
TreeTemplate.html
<ul>
<li ng-repeat="node in c.model" style="list-style-type: none;" ng-include="'/_Core/DirectiveCore/Tree/NodeTemplate.html'">
<!--there is not any tag here!-->
</li>
NodeTemplate.html
{{node.text}}
<ul ng-if="node.nodes">
<li ng-repeat="node in node.nodes" style="list-style-type: none;" ng-include="'/_Core/DirectiveCore/Tree/NodeTemplate.html'">
{{node.text}}
</li>
</ul>
请帮我弄清楚发生了什么。
答案 0 :(得分:1)
ng-include
属性正在使用li
中的内容替换NodeTemplate
内的所有内容。这就是您{{node.text}}
没有出现的原因。
你的第二种方法几乎是理想的,我不明白为什么你不喜欢它。根据我的结果,NodeTemplate
应该是树中的单个节点,这意味着它应该负责渲染节点文本。
我只会删除{{node.text}}
内的li
,因为它会被ng-include
替换:
{{node.text}}
<ul ng-if="node.nodes">
<li ng-repeat="node in node.nodes" style="list-style-type: none;" ng-include="'/_Core/DirectiveCore/Tree/NodeTemplate.html'" />
</ul>