2015-10-04 3 views
1

Я предполагаю, что это может быть преднамеренным, но не может найти упоминания в документах. (Если это намеренно, я сделаю PR, чтобы уточнить документы).событие 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} 
}) 

если сделать изменение данных в компоненте с:

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

в консоли не зарегистрировано событие «onchange». Однако, если в ярлыке flintstones Ractive сконфигурирован обработчик «onchange», тогда регистрируются данные в компоненте.

Преднамеренное или ошибка, или я делаю что-то неправильно здесь?

ответ

2

Событие onchange только для данных, принадлежащих (введенных) экземпляром компонента.

Использовать this.observe(...) уведомление о внесении изменений в любые данные, используемые в компоненте, независимо от того, откуда были получены данные.

Смежные вопросы