Ractive'考虑初始化您的数据以消除歧义'问题

时间:2016-02-01 20:34:35

标签: javascript ractivejs

我有一个对象通过这样的绑定传递给我的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

此致

1 个答案:

答案 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
},