การคลิกที่ช่องทำเครื่องหมายและเรียกใช้ ng-click: โมเดลไม่ได้รับการอัปเดตก่อนที่จะเริ่มการคลิกที่ ng-click ดังนั้นค่าช่องทำเครื่องหมายจึงแสดงใน UI ไม่ถูกต้อง:
สิ่งนี้ใช้ได้ใน AngularJS 1.0.7 และดูเหมือนจะเสียใน Angualar 1.2-RCx
<div ng-app="myApp" ng-controller="Ctrl">
<li ng-repeat="todo in todos">
<input type='checkbox' ng-click='onCompleteTodo(todo)' ng-model="todo.done">
{{todo.text}}
</li>
<hr>
task: {{todoText}}
<hr><h2>Wrong value</h2>
done: {{doneAfterClick}}
และตัวควบคุม:
angular.module('myApp', [])
.controller('Ctrl', ['$scope', function($scope) {
$scope.todos=[
{'text': "get milk",
'done': true
},
{'text': "get milk2",
'done': false
}
];
$scope.onCompleteTodo = function(todo) {
console.log("onCompleteTodo -done: " + todo.done + " : " + todo.text);
$scope.doneAfterClick=todo.done;
$scope.todoText = todo.text;
};
}]);
Broken Fiddle พร้อม Angular 1.2 RCx - http://jsfiddle.net/supercobra/ekD3r/
การเล่นซอด้วย Angular 1.0.0 - http://jsfiddle.net/supercobra/8FQNw/