我有以下模板
<div>
<div ng-repeat="item in items">
<div>
<p><button ng-click="editItem()">Edit</button></p>
</div>
<div class="span10">
<input type="text" value={{item.helpText}} ng-model="question.helpText" required>
</div>
<div id="done" ng-show={{item.state}}>
<div>
<p><button ng-click="doneEditItem()">Done</button></p>
</div>
</div>
</div>
</div>
在我的控制器中,我的代码最初设置为item.state = false
,这会隐藏done
div,因此会在启动时隐藏“完成”按钮。在editItem()
函数中,当用户单击“编辑”按钮时,我有代码设置item.state = true。
我期待当我设置item.state = true时,doneEditItem
按钮会再次显示。目前这种情况并没有发生。是否有一些我应该调用的angularjs函数会在设置item.state=true
后使完成按钮可见?
答案 0 :(得分:1)
ng-show需要Angular expression。此表达式是针对当前范围进行评估的,因此不需要{{}} - 实际上它们不能用于需要Angular表达式的位置。因此,请使用ng-show="item.state"
而不是ng-show={{item.state}}
。
{{}}在HTML的其他地方使用。例如,<p>Hello {{name}}</p>
。