为什么ViewModel.getStore(“Key”)返回null?

时间:2014-12-28 21:48:39

标签: javascript extjs mvvm extjs5

之前的版本不正确。道歉。

我尝试使用一些参数从服务器加载商店。

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'
                }
            },
        }
    }

});

1 个答案:

答案 0 :(得分:0)

您发布的代码中没有明显错误。我只是不确定你何时调用getStore。这可能很重要,因为视图模型只与其视图一起存在,绑定是异步的等等。因此,(理论上)它可能(理论上)第一次存储确实不存在。

理想情况下,准备展示并将其发布到https://fiddle.sencha.com。然后,可以在您的应用程序或Ext中解决它是否存在问题。 (顺便说一下,哪个版本?)