vue.js中的Object无法呈现模板

时间:2017-05-27 01:16:05

标签: javascript vue.js

  1. 在此演示中,(https://jsfiddle.net/ccforward/fa35a2cc/)我无法呈现模板,数据resultWrong等于{}

  2. 在这个演示中,(https://jsfiddle.net/ccforward/zoo6xzck/),如果我使用临时变量保存异步数据,那么我可以得到结果并渲染模板

  3. 如果我在方法中添加另一个名为getRightData()的函数,则getWrongData()可以正常工作,并且可以呈现模板。 链接:https://jsfiddle.net/ccforward/7f42owpc/4/

  4. 如果我删除getRightData()方法,则getWrongData()无效。 链接:https://jsfiddle.net/ccforward/7f42owpc/3/

1 个答案:

答案 0 :(得分:1)

除非您使用cannot detect properties that are added dynamically添加对象,否则

set提交给对象。

以下是您使用this.$set向空对象正确添加属性的第一个fiddle updated

对于您的演示,第一个不起作用,因为您使用索引添加属性,而Vue不知道它需要更新DOM。

第二个演示有效,因为基值resultRight设置为完全不同的值。 resultRight是一个反应值,当它变为不同的值时,Vue意识到它需要更新DOM。

第三个演示出现,但只有resultRight发生变化才有效,因为它是被动的,Vue知道更新DOM。 resultWrong同时呈现,但,因为Vue根据resultRight中的更改呈现了它。

第四个演示失败的原因与第一个演示失败的原因相同。 resultWrong获取新属性,但Vue 不知道有关这些属性的信息。并且因为您没有更改对象引用(如将resultRight更改为tmp时),Vue不知道它需要更新DOM。