在 vuejs 组件树中为 json 字符串的每一行添加一个值

Add a value to each line of a json string in the vuejs tree of components

我有一个 Vue 组件,它首先生成一个空列表,如下所示:

data: function(){
    return {
        list: [],
        newThing: {
            body: '',
        },
    };
},

我用 json 在组件方法中通过 ajax 获得的数据填充此列表,如下所示:

//ajax call
    this.list = data.json();

我得到一个包含一堆对象的数组 JSON 就像这样:

[{"id":1,"body":"test body"},{"id":2,"body":"blablablabla"}]

现在我的问题是:

我想为这些值中的每一个添加一个附加值!像这样:

[{"id":1,"body":"test body", "editMode":false},{"id":2,"body":"blablablabla","editMode":false}]

这样我就可以在我的任务应用程序中使用功能。 有谁知道如何最好地做到这一点?

这是您要找的吗?

this.list.forEach(function (obj) {
  obj.editMode = false;
});
this.list = data.json();
for (var i=0;i<this.list.length;i++){
this.list[i].editMode=false;
}

this.list.forEach(o => o.editMode = false)

但前提是您不关心它们的反应性。否则你应该使用 Vue.set

在 ajax 调用之后,听起来像一个简单的 for 循环应该可以工作:

for(var i = this.list.length; i--;){ this.list[i].editMode=false; }

将您的数组放入一个变量中,然后迭代该变量并相应地添加。

<script>
var xyz =  [{"id":1,"body":"test body"},{"id":2,"body":"blablablabla"}];
$.each(xyz,function(i,data){
data['editMode'] = false;
})
</script>

将此代码与 jquery 库放在一起,或者您可以在 javascrpt 中编写 for 循环,您将获得所需的输出