2015-11-10 2 views
-2

Итак, у меня есть корневой объект, в котором находится список selectedFields. Он заполняется выбором флажков из заполненного списка.Извлечение элемента из ng-model

<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; 
    } 
}; 

ответ

1

Это установлено значение истина/ложь, он не может удалить запись только с нг-модели и флажок. Если вы хотите этого, используйте метод для установки и удаления

OP edit: 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]; 
     } 
    }); 
} 
+0

Не понимаю - как он может добавлять элементы в список, делая это, но не удаляя их? –

+0

Он не может удалить данные, поскольку он устанавливает данные в false. – iScor

+0

О, мой бог, это правильно ... тьфу. Спасибо. –

0

Может быть, это может помочь вам:

<input type="checkbox" 
     ng-model="string" 
     [name="string"] 
     [ng-true-value="expression"] 
     [ng-false-value="expression"] 
     [ng-change="string"]> 
Смежные вопросы