gpt4 book ai didi

javascript - 在 Controller 中设置存储事件的监听器

转载 作者:行者123 更新时间:2023-12-02 23:39:58 25 4
gpt4 key购买 nike

我有一个带有商店、模型和一些 View 的 Controller 。

我需要在 Controller 中监听store的beforesyncwrite事件,但我不知道如何在 Controller 中设置这些监听器控制-功能。

我的商店看起来像这样:

Ext.define('DT.store.UsersStore', {
extend : 'Ext.data.Store',
model : 'DT.model.User',
id : 'myStore'
autoSync : true,
proxy : {
type : 'ajax',
api : {
read : '/load_entries',
update : '/update_entry'
},
reader : {
type : 'json',
root : 'user',
successProperty : 'success'
}
}
});

现在我尝试监听 Controller 中的事件:

...
init : function () {
this.control({
'myStore' : {
beforesync : this.doSomething,
write : this.doSomethingElse
}
});
},
...

我的预期结果是,当事件触发时,函数将被执行。但此时,当他们被解雇时,什么也没有发生。

我怎样才能让它发挥作用?

最佳答案

Your way这是可能的,但它并不理想,IMO。更好的方法是使用 Controller 的存储 getter。在你的情况下,代码将是这样的:

init : function () {
// every controller has getters for its stores.
// For store UsersStore getter would be getUsersStoreStore()
this.getUsersStoreStore().addListener('write',this.finishedLoading, this);
this.control({
// widgets event handlers
});
},

关于javascript - 在 Controller 中设置存储事件的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com