我正在尝试根据从服务器返回的数据动态构建表单。<PROJECT NAME>/store
在这种情况下,文件夹中没有我的商店。我有它<PROJECT NAME>/store/admin
。它是这样定义的:
Ext.define('APP.store.admin.TaskOption', {
extend: 'Ext.data.Store',
autoLoad: false,
storeId: 'adminTasksOptions',
model: 'APP.model.admin.TaskOption',
sorters: [
{ property: 'order', direction: 'ASC' }
]
});
请注意storeId
.
现在在我的控制器中,我在init
方法中尝试了这个,但它不起作用(即:它没有调用taskOptionsLoaded
方法。
Ext.create('APP.store.admin.TaskOption');
this.getAdminTasksOptionStore().on({
scope: this,
load : this.taskOptionsLoaded
});
另请注意,当我做了一个断点并检查时,this.getAdminTaskOptionStore
返回了正确的商店。我猜这是因为我将商店放在子文件夹中?不确定,但不是重新组织文件夹结构并将它们全部放在store
文件夹中(我有很多商店;大型项目),我正在尝试找到一个解决方案,以便我可以保持文件井井有条,以便下一个人使用。
所以现在我已经尝试过了,这也不起作用。这是在同一控制器中的方法中执行的。
Ext.getStore('adminTasksOptions').load(
{'params' : {'t_id' : this.selectedTaskTemplate},
callback: function(store, records, success) {
this.taskOptionsLoaded(store, records, success);
}
},this);
当我this.taskOptionsLoaded
在线断点时,它是在存储范围内,而不是控制器(this
)范围内。
在自己的商店中添加加载回调storeId
并在控制器范围内执行方法的最干净的方法是什么?
希望这是有道理的。