0

我创建了这个小提琴,展示了我想要做什么。

基本上,我配置了一个Store只加载一条记录的(实际上它将是当前登录的用户)。但是,我似乎无法正确地将任何东西绑定到该商店。我怎样才能{u.name}让它正确输出?

这是代码:

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name']
});

Ext.application({
    name : 'Fiddle',

    launch : function() {

        new Ext.Component({
            renderTo: Ext.getBody(),

            viewModel: {
                stores: {
                    u: {
                        proxy: {
                          type: 'ajax',
                          url: 'user.json'
                        },

                        model: 'User',

                        autoLoad: true
                    }
                }
            },

            bind: 'Test name: {u.name}'
        });

    }
});
4

2 回答 2

4

尝试 bind: 'Test name: {u.data.items.0.name}'

UPD: 作为对此的解释 - u是一个具有其属性的对象,因此尝试绑定到u.name实际上将绑定到存储的name属性。如果商店没有名称属性,它将始终为空。Store 接收到的数据放在data属性中。Items 属性包含接收数据的原始数组等。

于 2015-10-06T08:53:23.437 回答
2

在您的小提琴中,您正在使用商店,而看起来您只需要一条记录。

使用links而不是stores应该更好地工作,例如:

links: {
    u: {
        type: 'User',
        id: 1
    }
}

基于您的代码的工作示例:https ://fiddle.sencha.com/#fiddle/uuh

于 2015-10-06T10:41:43.983 回答