对象未更新角度

时间:2014-12-10 16:09:06

标签: javascript angularjs scope

我有我的对象

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

如果我用输入动态更改$ scope.obj的ID属性,它将不会更新我孩子的对象的obj_id值。

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

但是如果我在更新$ scope.obj.id值之后在childs属性中添加了一个新对象

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

我最近child对象推送的obj_id属性将使用输入设置$ scope.obj.id的新值。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

将父对象的id分配给数组中的子项时,它是复制的id的值。因此,输入标记上的ng-model根本不会绑定到子项的obj_id属性。

以下是对此问题的更全面的解释:

Binding to Values

也许您需要的是每个子节点上引用父对象的属性?这样你就可以从任何子对象中获取父ID的内容。

$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',
});