将对象附加到对象会擦除先前附加的数据

时间:2014-01-11 15:37:56

标签: javascript json angularjs

这支笔http://codepen.io/Irish1/pen/lbjdw展示了我正在做的事情并展示了这个问题。

我有一个程序,其中添加了一个星期对象,然后我可以添加星期的名称和它的描述。然后我在一周中添加一天,但在添加这一天的过程中,它会清除先前输入的名称和描述。它只会在你第一次添加一天时发生,所以它与我在添加日方法的ELSE路径中所做的事情有关,这里是我的控制器功能

$scope.addDay = function(index) {

        if (isDefined($scope.program.weeks[index].days)) {
            $scope.program.weeks[index].days.push(
                {

                }
            );

        } else {
            $scope.program.weeks[index] = { 
                days: [
                    {

                    }
                ]
            };
        }
    };

如果您需要,可在上面链接的笔中详细说明完整的代码。

如何在不删除已放入周对象的任何内容的情况下追加第一天的对象?

1 个答案:

答案 0 :(得分:2)

您正在为数组中的index分配一个新对象。这就是所有属性被“删除”的原因

您可能只想定义“days”属性:

$scope.program.weeks[index].days = [ /* .. */ ]