【问题标题】:Why does ViewModel.getStore("Key") return null?为什么 ViewModel.getStore("Key") 返回 null?
【发布时间】:2015-02-25 04:04:09
【问题描述】:

以前的版本不正确。我很抱歉。

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

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,之后返回 store 的实际实例。

为什么我会出现这种奇怪的行为?这是从服务器加载数据的正确方法吗?

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

});

【问题讨论】:

    标签: javascript extjs mvvm extjs5


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 2013-09-01
      • 2016-12-28
      • 1970-01-01
      • 2015-11-25
      • 2015-07-04
      • 2019-09-29
      • 2015-02-25
      • 2015-10-21
      相关资源
      最近更新 更多