2012-05-21 75 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';