所以我有这个代码片段来处理输入[type = checkbox]上的点击事件。我想要实现的是手动设置checked
属性,具体取决于if条件scope.vm.checkedRows.indexOf(orderId) === -1
(这里将false / true赋值转换为点),但它不起作用。
link: function(scope, element) {
element.on('click', '.csv-ignore input', function(event) {
scope.$apply(function() {
var orderId = angular.element(event.target).closest('tr').data('order-id')
if (scope.vm.checkedRows.indexOf(orderId) === -1) {
scope.vm.checkedRows.push(orderId);
event.target.checked = false;
} else {
scope.vm.checkedRows.splice(scope.vm.checkedRows.indexOf(orderId), 1);
event.target.checked = true;
}
});
return false;
})
}
未选中/取消选中复选框。我发现有趣的是,然后我评论return false
它工作正常。但是,我最初添加return false
以防止默认行为并手动选中/取消选中复选框。你知道这段代码有什么问题吗?
答案 0 :(得分:0)
也许您可以直接在ng-checked
中放置一个表达式,并在点击时在控制器中执行其余操作。它将动态设置检查值
<input type="checkbox" ng-model="item" ng-checked="(vm.checkedRows.indexOf(orderId) !== -1)">