2014-12-10 18 views
0

У меня есть объектобъекта не обновляется Угловой

$scope.obj = { 
    id : 0, 
    name : 'parent', 
    childs : [{ 
     obj_id : $scope.obj.id, 
     name : 'child1', 
    }, { 
     obj_id : $scope.obj.id, 
     name : 'child2', 
    }] 
} 

, если изменить атрибут ID моего $ scope.obj динамически с входом не обновляет OBJ_ID стоимости объектов моего ребенка.

<input type="text" ng-model="obj.id" /> 

Но если добавить новый объект в атрибуте childs, как это после того, обновив значение $ scope.obj.id

$scope.obj.childs.push({ 
    obj_id : $scope.obj.id, 
    name : 'child3', 
}); 

obj_id атрибут моего недавнего child объекта толчок будет иметь новое значение $ scope.obj.id установлено с входом.

Заранее спасибо.

ответ

1

Когда вы назначаете идентификатор родительского объекта дочерним элементам в массиве, это значение идентификатора, которое копируется. Таким образом, ng-модель вашего входного тега вообще не привязана к объекту obj_id для детей.

Здесь гораздо более подробное объяснение проблемы:

Binding to Values

Возможно, что вам нужно, это свойство на каждого ребенка, который ссылается на родительский объект? Таким образом, вы можете получить идентификатор родителя от любого дочернего объекта.

$scope.obj = { 
    id : 0, 
    name : 'parent', 
    childs : [] 
}; 
$scope.obj.childs.push({ 
    parent : $scope.obj, 
    name : 'child1', 
}); 
$scope.obj.childs.push({ 
    parent : $scope.obj, 
    name : 'child2', 
}); 
+0

Я согласен с вашим вторым решением. Спасибо за ссылку, это помогает. – KeizerBridge

Смежные вопросы