绑定带有单个记录的简单视图模型

Binding a Simple Viewmodel with Single Record

本文关键字:简单 视图 模型 记录 单个 绑定      更新时间:2023-09-26

我创建了这个小提琴来展示我想要做的事情。

基本上,我配置了一个只加载一条记录的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}'
        });
    }
});

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

乌利希期刊指南:作为对此的解释- u是一个具有其属性的对象,因此尝试绑定到 u.k name实际上将绑定到存储的name属性。当store没有name属性时,它将始终为空。Store接收到的数据放在data属性中。Items属性包含接收到的数据等的原始数组。

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

使用links代替stores应该会更好,如:

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

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