从商店监听器获取ViewModel

时间:2016-05-16 15:35:26

标签: 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;
        }
    }
}})

并且在商店的'update'函数中我希望得到这个viewModel并在公式记录中设置。   但如果我在商店里面打电话给'这个'我会得到'商店'

1 个答案:

答案 0 :(得分:2)

使用initConfig mehod。

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