0

我有这两个用于树视图的模板,我想使用第一种方法,但似乎有问题或者我错过了一些东西。

第一种方法(可取但不起作用)
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>

节点模板.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>

<li></li>TreeTemplate.html中的每一件事都不会出现ng-include

第二种方法(不可取但有效)

树模板.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>

节点模板.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>

请帮我弄清楚发生了什么。

4

1 回答 1

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>
于 2016-01-19T13:09:06.323 回答