html 父内容不会显示到 ng 包含 angularjs

html parent content wont show up though to ngInclude anglurjs

我有这两个用于树视图的模板,我想使用第一种方法,但似乎有问题或者我遗漏了什么。

第一种方法(理想但行不通)
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

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

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>

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

ng-include 属性正在用 NodeTemplate 中的内容替换 li 中的所有内容。这就是为什么您的 {{node.text}} 没有出现。

你的第二种方法几乎是理想的,我不明白你为什么不喜欢它。据我所知,NodeTemplate 应该是树中的单个节点,这意味着它也应该负责呈现节点文本。

我只想删除 li 里面的 {{node.text}},因为它会被 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>