所以,我有一个托管selectedFields
列表的根对象。通过从填充列表中选择复选框来填充它。
<input type="checkbox" ng-model="root[activeSource].selectedFields[item]" ng-value="item"> {{item}}
Root是主要对象,activeSource是当前关注的索引。现在,这很好用,它会在列表中添加字段。
但是,如果我返回到字段列表并取消选中它们,则不会将其从我的对象中删除。为什么模型添加索引,但在取消选中时不会删除它们?
这是根对象:
$scope.root[value.title] = {
"description" : value.description,
"root" : value,
"selectedFields" : {},
"weight" : 0,
"fields" : "",
"selectedFieldsLength" : function(obj) {
return Object.keys(obj).length;
}
};
答案 0 :(得分:1)
它将值设置为true / false,它不能仅使用ng-model和checkbox删除条目。如果需要,请使用方法设置和删除
OP编辑:ng-change添加到功能。 (我写了代码,但是这个答案帮助我写了它,所以给予它应有的信用)
//method to remove unchecked fields from active sources selected fields list
$scope.setObjectList = function() {
//iterate fields, check for a value of false (set by model), remove if false
angular.forEach($scope.root[$scope.activeSource].selectedFields, function(key, value) {
console.log(key,value)
if (key === false) {
delete $scope.root[$scope.activeSource].selectedFields[value];
}
});
}
答案 1 :(得分:0)
也许这可以帮到你:
<input type="checkbox"
ng-model="string"
[name="string"]
[ng-true-value="expression"]
[ng-false-value="expression"]
[ng-change="string"]>