0

作为一个简单的例子,假设我想制作一个数学产品网格:

A | B | C
----------
7 | 2 | 14
1 | 5 | 5
2 | 4 | 8
6 | 0 | 0
3 | 3 | 9
   ...

假设我的数据库只存储AB的值。然后我有3个选择:

  1. 计算C服务器端,并使用 ExtJS 模型与ABC作为字段
  2. 初始化加载记录时计算C客户端(通过某些阅读器?)如何做到这一点
  3. 计算C客户端,在网格渲染后,逐行提取AB并设置C的值
  4. 只需将ABC存储在数据库中

想法?我不知道为什么,但如果我能找到一种方法,我认为(2)是最干净的。

4

1 回答 1

1

2和3都得到了很好的支持。

对于 3,您可以在列上使用渲染器配置 - 那里有很多很多示例。

对于 2,您可以通过 convert 函数将其映射为模型中的计算字段

来自文档的示例:

function fullName(v, record){
    return record.data.last + ', ' + record.data.first;
}

function location(v, record){
    return !record.data.city ? '' : (record.data.city + ', ' + record.data.state);
}

Ext.define('Dude', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'fullname',  convert: fullName},
        {name: 'firstname', mapping: 'name.first'},
        {name: 'lastname',  mapping: 'name.last'},
        {name: 'city', defaultValue: 'homeless'},
        'state',
        {name: 'location',  convert: location}
    ]
});
于 2013-09-12T23:05:34.400 回答