1

基于与关联的一些示例,我编写了以下类:Ext.data.Model

Ext.define('MyApp.model.Children',{
  extend: 'Ext.data.Model',
  fields : [{
    name: 'parent' //object of the belongsTo
  },{
    name: 'description',
    type: 'string'
  }],
  belongsTo : [{
    name: 'parent',
    foreignKey: 'parent', //also tried parent.id
    instanceName: 'parent',
    getterName: 'getParent',
    model: 'MyApp.model.Parent'
  }],
  proxy : {
    type: 'rest',
    url: '../rest/children',
    reader : {
      type: 'json',
      root: 'data'
    }
  }
});

这个定义不应该生成一个getChildren方法吗?MyApp.model.Parent还定义了一个代理。

我正在测试:

var store = Ext.create('Ext.data.Store',{
  model: 'MyApp.model.Children'
});

store.load(function(recs){
  console.log(recs[0].getParent); //prints undefined instead of function
});
4

1 回答 1

0

看起来您的父模型未加载。尝试将requires配置添加到您的子模型。

Ext.define('MyApp.model.Children', {
   extend: 'Ext.data.Model',

   //ensures the Parent model is loaded first
   requires: 'MyApp.model.Parent',

   fields: ...
于 2013-10-02T23:48:12.353 回答