未触发组件的 onchange 事件

component's onchange event not triggered

我猜这可能是故意的,但在文档中找不到提及。 (如果是故意的,我会做一个 PR 来澄清文档)。

参考: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')

没有 'onchange' 事件记录到控制台。但是,如果打火石 Ractive 实例配置了 'onchange' 处理程序,则记录组件中的数据设置。

有意或错误还是我做错了什么?

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

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