替换数组中的对象

时间:2015-07-23 17:25:27

标签: javascript arrays angularjs

我已经创建了一个jsfiddle来解释我的问题

`http://jsfiddle.net/hin123/tcVhN/129/`    

我在这个例子中有添加和删除按钮,但似乎我找不到编辑按钮。我不确定有什么问题,帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

我相信你必须使用ng-repeat来渲染列表,每个列表项必须有一些编辑按钮。单击该按钮,您必须路由到编辑页面。

最好的方法是更新该索引处的对象,而不是在数组中推送新对象。

您可以将工厂的updateData方法更新为类似的内容 -

updateData: function (index, changedObj) {
    //merge the tempData object at position index and changedObject obj
    angular.extend(tempData[index], changedObject);
}

答案 1 :(得分:0)

如果您正在对用户正在编辑的记录的数据进行数据绑定,那么您的save功能可能非常简单:

$scope.save = function () {
    WebApi.updateData($scope.tempData);
};

当然,WebApi.updateData可以检测现有对象中的更改,这只会起作用。 (在您的示例中,将tempData设置回自身会保留对数据绑定对象的更改。)

要在编辑页面上设置数据绑定,您可以将编辑后的对象存储在范围($scope.editedRecord)上,然后执行以下操作:

<input type="text" ng-model="editedRecord.customerName">

对于您正在公开的已编辑记录的每个属性等等。