Angularjs 将复选框绑定到更新数据
我试图将html复选框绑定到不断更新的数据 以前,我在Angular中使用过复选框,将复选框绑定到如下属性Angularjs 将复选框绑定到更新数据,angularjs,Angularjs,我试图将html复选框绑定到不断更新的数据 以前,我在Angular中使用过复选框,将复选框绑定到如下属性 但是,由于数据总是在更新,用户设置的复选框值会被覆盖,因为更新的数据会覆盖isSelected值 我的问题的一个例子就在这里 我正在想其他方法来处理这个问题-以前有人处理过is吗?只需替换更改的值,而不是整个对象。这样,所选状态不会因间隔函数而改变 function ReasonCtrl($scope, $http) { $scope.rows = [{id : 1, isSel
但是,由于数据总是在更新,用户设置的复选框值会被覆盖,因为更新的数据会覆盖isSelected值
我的问题的一个例子就在这里
我正在想其他方法来处理这个问题-以前有人处理过is吗?只需替换更改的值,而不是整个对象。这样,所选状态不会因间隔函数而改变
function ReasonCtrl($scope, $http) {
$scope.rows = [{id : 1, isSelected : false, date : new Date().getTime()},{id : 2, isSelected : false, date : new Date().getTime()}];
setInterval(function() {
for (var i = 0; i < $scope.rows.length; ++i) {
$scope.rows[i].date = new Date().getTime();
}
$scope.$apply();
}, 200);
}
函数ReasonCtrl($scope,$http){
$scope.rows=[{id:1,isSelected:false,date:new date().getTime()},{id:2,isSelected:false,date:new date().getTime()}];
setInterval(函数(){
对于(变量i=0;i<$scope.rows.length;++i){
$scope.rows[i].date=new date().getTime();
}
$scope.$apply();
}, 200);
}
您可以在此处找到一个更新的fiddle:您可以更新现有对象属性,而不是替换对象。确实,这似乎有点像黑客,并且随着对象的变化需要维护。(显然,我的示例是人为设计的,数据实际上来自REST端点)。为什么不能在用户进行更改时更新服务器,以便新数据反映用户交互?您可以尝试类似
{selected:false,data:{//data is server object}
的结构。这种方法不需要复制属性,而是找到记录并替换它。@GrahamB不过,不更新整个对象是最干净的解决方案。您还可以简单地创建一个子对象,并对其进行更新,即{isSelect:true,actualDataObject:{…}}