2013-04-16 132 views
0

我已在模板如何使angularjs更新DOM更改的NG-顯示值後

<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後看到完成按鈕?

+2

嘗試'ng-show =「item.state」' - no {{}} s。 –

+0

我會添加'value = {{item.helpText}} ng-model =「question.helpText」'對我來說看起來很腥......你應該在你的控制器中設置'question.helpText',並把值屬性關 - 至少這是我的理解。 –

回答

1

ng-show與許多Angular指令一樣,需要。該表達式是針對當前範圍進行評估的,因此不需要{{}} - 實際上,它們不能用於需要Angular表達式的地方。所以使用ng-show="item.state"而不是ng-show={{item.state}}

當您希望Angular編譯器插入某些內容時,在您的HTML中的其他位置使用{{}}。例如,<p>Hello {{name}}</p>

相關問題