ExtJs ViewModel Bind Field不在数组上工作

时间:2014-10-15 14:56:57

标签: arrays extjs bind viewmodel extjs5

我试图绑定(两种方式绑定)我的表单的某些字段与我的视图模型提供的数据。 当我绑定一个简单的字符串时,它完美地工作。但是当我尝试将表单字段绑定到viewmodel中的数组字段时,视图模型不会考虑修改。

这是我的模特

Ext.define('Front.model.User', {
    extend : 'Ext.data.Model',
    fields : [{
        name : 'id',
        type : 'int'
    }, {
        name : 'name',
        type : 'string'
    }, {
        name : 'email',
        type : 'string'
    }, {
        name : 'last_connection',
        type : 'date',
        dateFormat : 'Y-m-d H:i:s'
    }, {
        name : 'birth',
        type : 'date',
        dateFormat : 'Y-m-d H:i:s'
    }, {
        name : 'schedule',
        type : 'auto'
    }]
});

这是我的ViewModel

Ext.define('Front.view.user.SheetModel', {
    extend : 'Ext.app.ViewModel',
    alias : 'viewmodel.sheet',
    requires : ['Front.model.User'],
    data : {
        currentUser:null
    },
    model : 'Front.model.User'
});

这是我的表格

Ext.define('Front.view.user.Sheet', {
    extend : 'Ext.form.Panel',
    requires : ['Front.view.user.SheetController'],
    controller : 'sheet',
    viewModel : {
        type : 'sheet'
    },
    config : {
        currentUser : null
    }, {
        xtype : 'textfield',
        fieldLabel : 'De',
        name : 'morningstarttest',
        width : 60,
        bind : {
            value : '{currentUser.schedule.lundi.am.start}'
        }
    }
});

绑定首次显示正确的值,但如果更改值则不会更新。

&#39>日程表'模型中的字段是一个数组。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的代码如何知道要绑定的数组中的哪个项目?你需要做类似的事情:

{currentUser.schedule[0].lundi.am.start}

为了指定数组索引。我不记得你是否可以做到这一点,那是因为这只是一个坏主意。我建议你重新考虑你想要做的事情。不要将计划作为模型中的字段,而是查看关联。