我在模板中有一个ng-if,并且ng-if不起作用,即使我将其更改为
ng-if="false"
我可以通过添加
来实现它ng-controller="TemplateController"
到父div,但是当我这样做时,我的控制器无法接收已解析的参数:
resolve: {
myVar: function() {
return "hello world";
}
}
Unknown provider: myVarProvider <- myVar
如果我删除ng-controller,并添加
controller: "TemplateController"
在我的决心:之后,然后myVar成功通过,但ng-if不再有效
我的HTML:
<table>
<div ng-repeat=“row in rows"><tr>
<span ng-if=“row.active==1">
<td>{{row.data}}</td>
<td></td>
<td>{{ row.date | date:"MM/dd/yyyy"}}</td>
<td>
<a href=“stuff”>click me</a>
</td>
</span>
<span ng-if=“row.active > 1">
<td>{{row.otherData}}</td>
<td>{{row.str}}</td>
<td>{{ row.date | date:"MM/dd/yyyy"}}</td>
<td>
<a href=“stuff”>click me instead</a>
</td>
</span></tr>
</div>
</table>
现在,我得到了一大堆空白单元格,两个'点击我'链接。
如果我删除标签,它可以工作,但它不在表格中
此外,不仅ng-if不起作用,而且我在{{}}内引用的任何变量都被替换为空格(但如果删除它们也可以工作)
jsFiddle:http://jsfiddle.net/Mh2UH/1/
答案 0 :(得分:-2)
避免此问题的黄金法则是
ng-if="false"
没有点。因此,值false被传递到ng-if的范围但不能更新,因为false
是一个不可变的布尔值。
正确的方法,
ng-if=status.enabled
其中status是一个对象。