2012-05-21 34 views
1

一个hasOne模型我有一个模型横幅和模型BannerFormat。横幅有横幅格式。配置旗帜和横幅格式之间的hasOne关系,我写了这个:如何获得与煎茶触摸

Ext.define('admin.model.Banner', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [ 
      { name: 'id', type: 'int' }, 
      { name: 'banner_format_id', type: 'int' }, 
      'code', 
      'active', 
      'start_at', 
      'end_at' 
     ], 
     associations: { type: 'hasOne', model: 'admin.model.BannerFormat', getterName: 'getBannerFormat' }, 
     proxy: { 
      type: 'ajax', 
      url: '/admin/api_query.php', 
      extraParams: { 
       table: 'content_banners', 
       type: 'GET' 
      } 
     } 
    } 
}); 

在我bannerFormat模型:

Ext.define('admin.model.BannerFormat', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: ['id', 'format'], 
     associations: { type: 'hasMany', model: 'admin.model.Banner' }, 
     proxy: { 
      type: 'ajax', 
      url: '/admin/api_query.php', 
      extraParams: { 
       table: 'content_banner_formats', 
       type: 'GET' 
      } 
     } 
    } 
}); 

但是,当我打电话banner.getBannerFormat(),我得到:

Uncaught TypeError: Object [object Object] has no method 'getBannerFormat' 

我怎么会错呢?

回答

1

你创建一个横幅对象,然后就它的调用来检索定义的关联?

这应该为你工作:

var banner = Ext.create('admin.model.Banner', { 
    id: 100, 
    banner_format_id: 20, 
    code: 'ABC123', 
    active: true, 
    start_at: 1, 
    end_at: 5 
}); 

banner.getBannerFormat(); 

而且,你不需要指定getterName的协会,如果你不想要的。 Sencha会为关联自动生成一个getter函数,该函数遵循以下格式:'getModelName'。如果您从关联中删除了getterName,则横幅模型上的getter函数将与您定义的getter函数相同:'getBannerFormat';