EXTJS 5-ViewModel获取Store返回null值



Im当前在ViewModel中使用Extjs5的MVVM功能声明存储时遇到问题。

简单用例:

ViewModel:

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      
        }
}
}];

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

ViewController:

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"函数为null。

我所需要做的就是在ViewModel上声明存储。请帮我哪一部分错了,还是这是个bug?如果你分享一些想法或其他方法,请不胜感激。谢谢

我认为您需要修改代码,如下所示。为了首先获得对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);
    }
    });

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

相关内容

  • 没有找到相关文章

最新更新