我是Ractive.js的新手,并使用“魔术模式”,以便我的JS对象的更新自动触发我的UI更新。一切都很好,除了我有一些属性,这些属性被添加到我的绑定对象 渲染我的Ractive实例之后。这意味着Ractive看不到对这些属性的更改,因此“魔术”对他们不起作用。
作为一种解决方法,我发现我可以在将这些属性传递给Ractive之前用“空”值初始化这些属性,但感觉有点不自然。
是否有一种首选方式告知Ractive我已将一个新属性添加到应该开始跟踪的对象中?
答案 0 :(得分:1)
我的经验是,你可以用两种方式来表达。
第一个是您在帖子中描述的那个。 第二种是通过用于渲染对象的模板“添加”属性。
当你将魔法模式设置为true时,ractive实际上做了什么是用一个属性来“包裹/替换”你的字段,该属性监视字段的变化。
当我在数据对象上使用Object.DefineProperty时,我遇到了使用magicmode的问题。 (东西被叫两次)
我会选择洗脱1,并提前定义所有字段。 还要注意将你的字段(实际上现在是由ractive取代的属性)设置为不是值类型的东西,因为它将再次覆盖属性并搞乱magicmode。