我有一个对象通过这样的绑定传递给我的Ractive组件:
public static class KomparatorI implements Comparable<KlassA>{
public int compareTo(KlassA o) {
return Integer.compare(this.i, o.i);
}
}
并且在<Component obj={{someObject}} />
我已经定义了以下oninit方法:
Component
但是,使用oninit: function () {
this.set('someObjectClone', JSON.parse(JSON.stringify(this.get('someObject'))));
}
双向绑定我的模板中的someObjectClone
元素会产生警告:
Ractive.js:&#39; someObjectClone.someValue&#39;用于双向绑定的引用是不明确的,可能会导致意外的结果。考虑初始化您的数据以消除歧义
如果我只是尝试在不使用双向绑定的情况下打印该值,则不打印任何内容。好像该值根本没有设置。但是,如果我<input>
console.log(this.get())
我可以看到它已被设置。 DOM没有更新吗?
有人可以填写这个吗?
我正在使用Ractive oninit
并设置了JSFiddle here
此致
答案 0 :(得分:3)
在您的示例中,event
在组件参数中设置为some
:
<Component event="{{some}}"/>
然后将该对象复制到clone
路径:
this.set('clone', JSON.parse(JSON.stringify(this.get('event'))) );
因此,在您的模板中,使用{{clone.value}}
。
对于不明确的引用警告,请在数据中设置一个默认值,以便Ractive知道该值可以在组件的根目录中找到(参见http://jsfiddle.net/kjj6s709/6/):
data: {
clone: null
},