0

我有以下模板

<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

4

1 回答 1

1

ng-show与许多 Angular 指令一样,采用Angular 表达式。该表达式是针对当前范围进行评估的,因此不需要 {{}} ——实际上它们不能用于需要 Angular 表达式的地方。所以使用ng-show="item.state"而不是ng-show={{item.state}}.

当您希望 Angular 编译器插入某些内容时,{{}} 会在 HTML 的其他地方使用。例如,<p>Hello {{name}}</p>

于 2013-04-16T14:57:25.547 回答