tôi sẽ bắt đầu bằng cách nói rằng tôi thực sự không thích các tùy chọn để làm điều này trong góc. Tôi thậm chí không thể nói rằng điều này là tốt hơn so với câu trả lời được chấp nhận, nhưng nó giữ dữ liệu trong mô hình.
Markup:
<tr ng-repeat='(index, doc) in provider'>
<td><input type='checkbox' ng-true-value='{{doc.provider.Id}}' ng-model='ids[index]' /></td>
</tr>
<span ng-repeat='id in ids'>{{id}} </span>
Bây giờ chỉ cần $ xem giá trị mảng và lọc khi nó thay đổi trong bộ điều khiển (hãy chắc chắn để vượt qua các thông số bình đẳng đối tượng):
$scope.ids = [];
$scope.updateIds = function() {
$scope.ids = $scope.ids.filter(function(id) {
return !!id;
});
};
$scope.$watch('ids', $scope.updateIds, true);
Khi tôi bắt đầu trả lời câu hỏi này, tôi nghĩ rằng các tùy chọn thành ngữ nhất sẽ là thêm một chỉ thị ng-thay đổi trên đầu vào:
<input type='checkbox' ng-true-value='{{doc.provider.Id}}' ng-model='ids[index]' ng-change='updateIds()'/>
Thật không may điều này không hoạt động như mong đợi. Giao diện người dùng không cập nhật đúng khi xóa giá trị. Tôi cũng muốn chỉ ra rằng bạn có thể làm điều này mà không có sự chỉ lặp lại:
<input type='checkbox' ng-true-value='1' ng-model='ids.0' />
<input type='checkbox' ng-true-value='2' ng-model='ids.1' />
<input type='checkbox' ng-true-value='3' ng-model='ids.2' />
<input type='checkbox' ng-true-value='4' ng-model='ids.3' />
<input type='checkbox' ng-true-value='5' ng-model='ids.4' />
<input type='checkbox' ng-true-value='6' ng-model='ids.5' />
Trong trường hợp này, $ đồng hồ chắc chắn là tốt hơn so với thêm ng thay đổi cho mỗi đầu vào. Cuối cùng, đây là một hoạt động plunkr. Chức năng đồng hồ $ kết thúc chạy hai lần mỗi lần một hộp được chọn hoặc không được chọn, nhưng đó thực sự là cách nó phải như thế!
tại sao không đánh dấu bên dưới là * câu trả lời *? – superjos