我有一个通过这样的绑定传递给我的Ractive组件的对象:
<Component obj={{someObject}} />
在
Component
中,我定义了以下oninit方法:oninit: function () {
this.set('someObjectClone', JSON.parse(JSON.stringify(this.get('someObject'))));
}
但是,使用
someObjectClone
双向绑定模板中的<input>
元素会导致警告:Ractive.js:用于双向绑定的“ someObjectClone.someValue”引用不明确,可能会导致意外结果。考虑初始化数据以消除歧义
如果我只是尝试不使用双向绑定就打印值,则不会打印任何内容。好像根本没有设置该值。但是,如果我在
console.log(this.get())
中执行oninit
,则可以看到它已设置。 DOM是否未更新?有人可以帮我吗?
我正在使用Ractive
0.8.0-edge
,并设置了JSFiddle here问候,
最佳答案
在您的示例中,组件参数中的event
设置为some
:
<Component event="{{some}}"/>
然后将该对象复制到
clone
路径:this.set('clone', JSON.parse(JSON.stringify(this.get('event'))) );
因此,在模板中,使用
{{clone.value}}
。对于模糊的ref警告,请在数据中设置一个默认值,以便Ractive知道该值将在组件的根目录中找到(请参见http://jsfiddle.net/kjj6s709/6/):
data: {
clone: null
},
关于javascript - 主动“考虑初始化数据以消除歧义”问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35139795/