ng-include with ng-init oddity

时间:2015-12-01 16:47:29

标签: angularjs angularjs-ng-include

我创建了一个像这样的内联模板

<script type="text/ng-template" id="/deviceResultsContainer.html">
    {{resultListTitle}}
</script>

如果我这样使用

<div ng-include="'/deviceResultsContainer.html'" ng-init="resultListTitle = 'Errors'"></div>
<div ng-include="'/deviceResultsContainer.html'" ng-init="resultListTitle = 'Warnings'"></div>

我的输出是

  

警告

     

警告

为什么会像这样列出,而不是我期望的那样:

  

错误

     

警告

2 个答案:

答案 0 :(得分:2)

因为最后将$scoperesultListTitle设置为“警告”。从技术上讲,它们都看着相同的价值。

我认为您正在寻找的内容可能希望获得 isolated $scope的指令。

如果您要执行以下操作:

<div ng-include="'/deviceResultsContainer.html'" ng-init="resultListTitle = 'Errors'"></div>
<div ng-include="'/deviceResultsContainer.html'"></div>

你会看到:

  

错误

     

错误

答案 1 :(得分:0)

如果您添加ng-if="true"或真实陈述的某种变体,似乎会将评估顺序更改为ng-initng-include之前重新评估的位置。当然是骇客,使用风险自负。