extjs - 从 store 监听器获取 ViewModel

标签 extjs mvvm store

我有viewModel:

Ext.define('Shop.view.BooksViewModel', {
extend: 'Ext.app.ViewModel',

alias: 'viewmodel.booksVM',

stores: {
    books: {
        model: 'Poly.model.books',
        extend: 'Ext.data.Store',
        listeners: {
            update: function() {
                // get this view model for set record in 'getBooks' formula
            }
        }
    }
},

formulas: {
    getBooks: {
        get: function (value) {

            return value;
        }
    }
}})

在商店的“更新”功能中,我想要获取此 View 模型并在公式记录中设置。 但如果我在商店功能中调用“this”,我会得到“store”

最佳答案

使用 initConfig 方法。

Ext.define('Shop.view.BooksViewModel', {
extend: 'Ext.app.ViewModel',

alias: 'viewmodel.booksVM',

initConfig: function(instanceConfig) {
    var me = this,
        config = {
            stores: {
                books: {
                    model: 'Poly.model.books',
                    extend: 'Ext.data.Store',
                    listeners: {
                        update: function() {
                            console.log(me.getFormulas().getBooks);
                        }
                    }
                }
            }
        };
    if (instanceConfig) {
        me.getConfigurator().merge(me, config, instanceConfig);
    }
    return me.callParent([config]);
},

formulas: {
    getBooks: {
        get: function (value) {

            return value;
        }
    }
}})

关于extjs - 从 store 监听器获取 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37257712/

相关文章:

WPF Datagrid selecteditem = MVVM 中的 null

c# - MVVM Xamarin 从 ViewModel 打开新窗口 - 如何消除对 View 的引用

mongodb - MongoDB 集合中可以包含另一个集合吗?

javascript - 需要一个 ExtJS 错误解决方法

image - ExtJS 4 : How to auto scale an image?(无裁剪)

css - 如果元素不适合可用区域宽度,则使用 CSS 将元素移动到下一行

mvvm - 在 View 模型上测试RACCommand

ios - 在 NSUserDefaults 中存储一个 UIViews 数组

database - 在多个服务器上存储大量图像

Javascript 属性的存在和范围