也许我想要做的是反对 MVC,但这里就是这样。
我有绑定到控制器上的功能的视图事件。这些事件更新了我在 Controller.init 上创建的模型实例。我希望更新模型实例来引发可以绑定到控制器上的函数的事件。
这样做的正确方法是什么?我调用 Controller.control 但我不知道要为选择器传递什么。
这是我的 Controller.init:
var me = this;
me.keysModelInstance = me.getKeysModel().create();
me.control({
'model#keys': {
onkeyschange: me.onKeysModelInstanceChange
}
});
这是我的模型:
Ext.define('pronghorn_ui_keyboard.model.Keys', {
extend: 'Ext.data.Model',
fields: [
{
name: 'keys',
type: 'string'
}
],
add: function(key) {
this.set('keys', this.get('keys') + key);
this.fireEvent('onkeyschange');
},
clear: function() {
this.set('keys', '');
this.fireEvent('onkeyschange');
}
});
我知道我可以通过自定义侦听器获得我想要发生的事情,但这不像“MVC 方式”。模型只是不打算引发事件吗?不过,这没有任何意义。当代理获得异步更新时引发事件的模型和商店呢?