在更改ng-show的值后,如何使angularjs更新dom

时间:2013-04-16 02:01:10

标签: dom angularjs

我有以下模板

<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后使完成按钮可见?

1 个答案:

答案 0 :(得分:1)

与许多Angular指令一样,

ng-show需要Angular expression。此表达式是针对当前范围进行评估的,因此不需要{{}} - 实际上它们不能用于需要Angular表达式的位置。因此,请使用ng-show="item.state"而不是ng-show={{item.state}}

当您希望Angular编译器插入某些内容时,

{{}}在HTML的其他地方使用。例如,<p>Hello {{name}}</p>