无法在axios成功回调中更新vue对象的属性

时间:2018-09-04 05:34:11

标签: javascript vue.js

我有axios回调,并且我想更新vue对象的属性,并且我在input标签和edited属性之间进行了两种方式的绑定,以便根据{ {1}}属性。当我在回调中将edited属性更新为false时,该文本框不会被隐藏。但是当我在axios回调外部更新时,文本框被隐藏或显示。

edited

谁能告诉我为什么?您可以查看完整的代码:https://gist.github.com/inherithandle/e61a5ab2809581a5d36de08b4e4349f1

2 个答案:

答案 0 :(得分:1)

我认为这是由于edited数组中project项的属性projects被动态添加到project所致。
Adding property to Ojbect

将属性添加到对象时,必须使用$set

  

由于现代JavaScript的局限性(以及Object.observe的放弃),Vue无法检测到属性的添加或删除。   但是,可以使用Vue.set(object,key,value)方法将反应性属性添加到嵌套对象中:

请尝试在line 181中使用以下代码,以及在github源代码中更改edited项的project的其他行。

this.$set(this.projects[this.currentIndex], 'edited', false);

答案 1 :(得分:0)

您的currentIndex始终为0,而​​您的两个if语句始终返回false。