2013-07-03 30 views
0

這是所有關於此塊:NG-模式不隨工作納克單擊

<div class="panel done-{{ todo.done }}" ng-repeat="todo in todos()" ng-click="changeStatus(todo)"> 
    <input type="checkbox" ng-model="todo.done"> {{ todo.title }} 
</div> 

卸下外NG-點擊複選框工作正常,不這樣做只是NG-點擊會工作。在複選框不改變狀態時,Ng-click會改變複選框的值。

$scope.changeStatus = function(todo) { 
    todo.done = ! todo.done; 
}; 

回答

0

明白了現在的工作。這可能有點難看,但它的工作原理:

<div class="panel done-{{ todo.done }}" ng-repeat="todo in todos()" ng-click="changeStatus(todo)"> 
    <input type="checkbox" ng-model="todo.done" ng-click="changeStatus(todo)"> {{ todo.title }} 
</div> 
0

的NG-點擊輸入字段應該去:

<div class="panel done-{{ todo.done }}" ng-repeat="todo in todos()" > 
    <input type="checkbox" ng-model="todo.done" ng-click="changeStatus(todo)"/> {{ todo.title }} 
</div> 

,你的功能應該有!運營商連接到變量或將會失敗:

$scope.changeStatus = function(todo) { 
    todo.done = !todo.done; 
}; 
+0

嘗試更改,但它不起作用。此外它不會有多大意義,因爲我希望面板是可點擊的,工作正常。 – zimt28

+0

「應該將!操作符連接到變量,否則將失敗」 我來自PHP,但它工作正常,應該幾乎相同,不管你在那裏放置多少個空間,不應該這樣嗎? – zimt28

+0

我以爲你希望輸入改變時,複選框被點擊,而不是別的,我的壞。我認爲你的問題是複選框的值不是真或假,它們是一個字符串,例如,value ='todo 1',如果ng-model等於'todo 1'(todo。 done ='todo 1') – ruedamanuel