组件的onchange事件未触发

时间:2015-10-04 16:21:28

标签: ractivejs

我猜这可能是有意的,但在文档中无法提及。 (如果是故意的,我会做一个公关来澄清文档)。

参考:this jsfiddle

我的HTML:

<div id='container'/>

和我的javascript:

Person = Ractive.extend({
  template : '<p>{{name}}</p>',
  onchange : function(obj){console.log(obj)}
})

flintstones = new Ractive({
  el : '#container',
  template : "{{#names}}<person/>{{/}}",
  data : {names : [{id:1, name:"Fred"},{id: 2, name:"Barney"}]},
  components : {person : Person}
})

如果我使用以下内容在组件中进行数据更改

flintstones.findAllComponents('person')[1].set('name','Wilma')

没有&#39; onchange&#39;事件记录到控制台。但是,如果flintstones Ractive实例配置了&#39; onchange&#39;处理程序,然后记录组件中的数据。

故意或错误或我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

onchange事件仅针对组件实例拥有(引入)的数据触发。

使用this.observe(...)通知组件中使用的任何数据的更改,无论数据源自何处。