之前的版本不正确。道歉。
我尝试使用一些参数从服务器加载商店。
onSave: function (cmp) {
var vm = cmp.up('stageform').getViewModel();
vm.set("extraParams", {applicationFormId: 1});
var store = vm.getStore("applicationForms");
console.log(store);
}
第一次触发事件时, vm.getStore("applicationForms");
返回null,之后返回商店的实际实例。
为什么我会遇到这种奇怪的行为?这是从服务器加载数据的正确方法吗?
ViewModel代码:
Ext.define('CPCApplication.view.cases.ApplicationFormModel', {
.....
stores: {
applicationForms: {
model: 'CPCApplication.model.ApplicationForm',
autoLoad: true,
proxy: {
type: 'ajax',
extraParams: '{extraParams}',
autoload: true,
url: ...,
reader: {
type: 'json'
}
},
}
}
});
答案 0 :(得分:0)
您发布的代码中没有明显错误。我只是不确定你何时调用getStore。这可能很重要,因为视图模型只与其视图一起存在,绑定是异步的等等。因此,(理论上)它可能(理论上)第一次存储确实不存在。
理想情况下,准备展示并将其发布到https://fiddle.sencha.com。然后,可以在您的应用程序或Ext中解决它是否存在问题。 (顺便说一下,哪个版本?)