【问题标题】:EXTJS 5 - ViewModel getting Store returns null valueEXTJS 5 - 获取 Store 的 ViewModel 返回空值
【发布时间】:2014-11-10 11:00:01
【问题描述】:

我目前在 ViewModel 中使用 Extjs5 的 MVVM 功能声明的存储存在问题。

简单用例:

视图模型:

Ext.define('App.view.view1.View1Model', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.view1',`
data: {

},
stores:{
       Company:{
                    model: 'UM.model.CompanyData',
                    type: 'CompanyData',             //Store name
                    autoLoad: true      
        }
}
}];

虽然下面的代码是我的视图控制器:

视图控制器:

Ext.define('App.view.view1.View1Controller', {
extend: 'Ext.app.ViewController',
alias: 'controller.view1',
onloadnewdata: function(event, item,store){
            var vm= this.getViewModel();
            var store=vm.getStore('Company');
            console.log(store);

}

});

基于控制台存储的“onloadnewdata”函数触发某些事件时为空。

我需要做的就是获取在 ViewModel 上声明的商店。请帮助我哪一部分是错误的还是这是一个错误? 感谢您分享一些想法或其他方法。谢谢。

【问题讨论】:

  • 您能否提供一个模拟 Sencha Fiddle 来解决这个问题?

标签: extjs mvvm viewmodel


【解决方案1】:

我认为您需要修改如下代码。为了首先获得对 ViewModel 的引用,您需要获得对 View 的引用。

    Ext.define('App.view.view1.View1Controller', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.view1',
    onloadnewdata: function(event, item,store){
        var store = this.getView().getViewModel().getStore('Company');
        console.log(store);
    }
    });

你可以参考这个煎茶小提琴https://fiddle.sencha.com/#fiddle/fpb。只需检查以下控制器 TestApp.view.grid.GenericGridController 。希望对您有所帮助!

【讨论】:

  • 感谢您的样品,将尝试您的建议。
猜你喜欢
  • 2014-08-19
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 2018-09-08
  • 1970-01-01
相关资源
最近更新 更多