如何在angualrjs中动态替换对象的属性?

时间:2015-10-27 04:46:38

标签: angularjs

var $scope.form = {
    Name: "",
    fields: []
}
angular.forEach($scope.form.fields, function (f) {
    if (f.hasOwnProperty('order')) {
        //code to replace the value of the property
    } else {
        //if order is not present push the new values to the $scope.form.fields.
    }
});  

我有一个弹出他们我附加文本框。当我添加一个文本框时,我将对象推送到$ scope.form.fields即名称,ID,顺序..当我追加第二个文本框时,它是itering 2次,显示3个文本框。它为每个新文本框加倍。所以我想当$scope.form.fields包含顺序时,我应该有权更改文本框的名称。如果它不存在,我只是将这些新对象推入$ scope。 form.fields.Can任何人都可以为它提供解决方案。

1 个答案:

答案 0 :(得分:0)

我可以看到你有一个数组,即fields,你需要在数组尚未包含相同值时推送新值。您可以使用数组的indexOfinArray函数。请尝试以下代码段

angular.forEach($scope.form.fields, function (f, key) {
    if (f.indexOf('order') >= 0) { // check whether array contains `order` or not
        $scope.form.fields[key]['order'] = 'new value';
    } else {
        $scope.form.fields.push('new value');
    }
});