如何 'get' ExtJS 5.1.1 上的另一个模型字段

How to 'get' another Model field on ExtJS 5.1.1

我正在尝试在 Ext.column 中使用 renderer 配置。我在模型中有两个字段状态; balanceoklastbalance。但它给出了这个错误:

[W] XTemplate evaluation exception: getRecord is not defined

如何使用 get 方法显示另一个字段?

型号:

Ext.define('MultiDB.model.FolioModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'clientname', type: 'string'},
        {name: 'balanceok', type: 'bool'},
        {name: 'lastbalance', type: 'int'}
    ]

网格面板:

{
  dataIndex: 'balanceok',
  flex: 1,
  text: 'Balance',
  renderer: function (value, record, store) {
     if (value == 1) {
        return "All Paid";
     } else {
        return getRecord('lastbalance');
     }
  }
}

不确定您在哪里找到 getRecord,正确的调用是:

record.get('lastbalance');

附带说明一下,value == 1 的检查有点奇怪,因为由于模型的原因,该字段将被转换为布尔值。

Renderer 已经提供了一个记录参数。您可以在关注网格单元格时使用 getRecord,但从上述用例看来您不需要它。

您的渲染器参数似乎有些偏差,这可能就是您在检查和检索值时遇到问题的原因。

如果您从以下位置更新您的列渲染器: renderer: function (value, record, store) { ... } 到: renderer: function (value, metaData, record, rowIndex, colIndex, store, view) { ... } 您可以在此处查看渲染方法的完整描述: http://docs.sencha.com/extjs/5.1.1/api/Ext.grid.column.Column.html#cfg-renderer

请查看下面的 fiddle 以获取有助于您前进的工作示例: https://fiddle.sencha.com/#view/editor&fiddle/251r