2015-10-04 172 views
1

我猜這可能是有意的,但在文檔中找不到。 (如果是故意的,我會通過公關來澄清文檔)。組件的onchange事件未觸發

裁判: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} 
}) 

如果我在A組份數據的變化:

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

沒有'onchange'事件記錄到控制檯。但是,如果Rint實例使用'onchange'處理程序進行配置,則會記錄設置組件中的數據。

故意或錯誤或我在這裏做錯了什麼?

回答

2

onchange事件僅對組件實例擁有(引入)的數據觸發。

使用this.observe(...)將被通知有關組件內使用的任何數據的更改,而不管數據來自何處。