2013-07-15 71 views
0

我有這樣的代碼:角綁定不上覆選框正常工作(WebKit的)

<input type="checkbox" ng-checked="item.selected == 'yes'" ng-click="change()">{{item.selected}}<br/> 

http://jsfiddle.net/NmQXp/2/

正如你所看到的,有三個相同的複選框,用自己選中狀態綁定到的值一些字符串。問題在於我想在複選框中引入一箇中間「部分選定」狀態。實際上,我想要做的是使用複選框將值從「掛起」更改爲「正在進行」,然後「完成」(我正在製作一個ToDo列表)。

如果您多次單擊其中一個,您可以在其他人中看到正確的行爲,但在您點擊的狀態中檢查的狀態是錯誤的。

¿這是一個錯誤的角度綁定,或者我錯過了什麼?

回答

2

那麼我試圖修理你的小提琴來照顧檢查問題。行爲不一致,因爲默認的HTML行爲導致鼠標點擊時複選框被選中。我添加了這些行以防止複選框的默認行爲。

if ($scope.item.selected == 'no') { 
      $scope.item.selected = 'halfway'; 
      $event.preventDefault(); 
     } 

這是更新的小提琴。

http://jsfiddle.net/cmyworld/J27jN/

+0

謝謝!我不知道你可以通過事件作爲參數。 –

+0

我無法在文檔中的任何位置找到此事件的'$ event'包裝。你從哪裏得到它的?還有其他什麼變量可以在角表達式中使用?有沒有一份清單? –

+0

嗯,我不記得了,但它絕對不是來自文檔。最有可能從一些舊的問題:) – Chandermani