8

Ext.data.Model类中,我们有set(fieldName, newValue)将一个模型字段设置为给定值的方法。

如何一次设置多个值?就像是:

Ext.data.Model.set({
    field1: 'value1',
    field2: 345,
    field3: true
});
4

5 回答 5

10

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Model

您可以设置要设置的字段,或包含键/值对的对象

record.set({
    field1: value,
    field2: value2
});

// or 

record.set(field1, value);
record.set(field2, value2);
于 2013-09-28T14:19:22.560 回答
8

这是不可能的,但是根据我的理解,当您只需要通知模型中的更改以存储一次时,您只想合并这些不同的调用以在模型中设置一个值,因此 store 只会触发update一次事件

如果您是这种情况,那么您可以使用beginEditendEdit功能

var model = new Ext.data.Model();

model.beginEdit();

model.set('field1', 'value1');
model.set('field2', 345);
model.set('field3', true);

model.endEdit();
于 2013-04-28T20:09:38.877 回答
1

只需创建一个新记录,它返回一个包含所有模型字段的空白记录

//this one is for the grid model

var blank_record  = Ext.create(grid.store.model);

创建一个对象以将新值设置为字段

 var new_record = {
        'field1':'value1',
        'field2':'value2',
        'field3':'value3'
    };

然后将对象值设置为空白记录

 blank_record.set(new_record);

此外,如果您想将新创建的记录添加到网格中

grid.store.add(blank_record);

希望这可以帮助

于 2017-04-25T10:31:03.507 回答
0

我参加聚会迟到了,但这里有另一种方法:

var rec = new Ext.data.Model({
    field1: 'value1',
    field2: 'value2',
    field3: 'value3'
});
于 2017-04-18T15:37:59.323 回答
-1

Can't you do this with just Ext.create() ? As explained here:

http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.ModelManager-method-create

于 2013-04-29T12:50:31.710 回答