ExtJS 5.1:使用 MVVM 存储设置默认 ComboBox 值

ExtJS 5.1: Setting default ComboBox value using MVVM store

在我的 ViewModel 中,我为绑定到视图中的 ComboBox 创建了一个内联数据存储。我遇到的问题是根据商店中的一个值设置 ComboBox 的默认值...我可能正在理解这里的绑定,所以我想听听任何反馈。

OrderDetailsS​​tatus 模型:

Ext.define('UserUI.model.OrderDetailsStatus', {
    extend: 'Ext.data.Model',
    alias: 'model.OrderDetailsStatus',

    fields: [{
        type: 'int',
        name: 'statusId'
    },
    {
        type: 'string',
        name: 'status'
    }]
});

视图模型:

stores: {
        /* TODO: This could eventually become an AJAX call, but for right now,
         * it's an inline data store... the statusId's are currently unused */
        orderDetailsStatusStore: {
            model: 'UserUI.model.OrderDetailsStatus',
            proxy: {
                type: 'memory'
            },
            data: [
                { status: 'All', statusId: 1 },
                { status: 'Correct', statusId: 2 },
                { status: 'Incorrect', statusId: 3 }
            ]
        }
    }

在视图中:

{
                xtype: 'combo',
                fieldLabel: 'Status',
                bind: {
                    store: '{orderDetailsStatusStore}'
                },
                valueField: 'status',
                displayField: 'status',
                queryMode: 'local',
                value: 'All',
                listeners: {
                    select: 'onSelectComboBoxStatus'
                }
            }

使用值:'All' 给我关于模型不存在的错误:

TypeError: Model is not a constructor: ext-all...ebug.js (line 122343, col 33)
    record = new Model(dataObj);

我假设这是因为绑定的商店还没有完全加载?如果我调试代码,在那一行,模型是未定义的,并且商店没有任何数据。任何帮助将不胜感激。

Fiddle 在 5.1.0

中修复了更新

<iframe src="https://fiddle.sencha.com/fiddle/m3g"></iframe>

我创建了一个简单的 fiddle 来复制你的 - https://fiddle.sencha.com/#fiddle/m3g