2012-05-21 3 views
1

모델 배너와 BannerFormat 모델이 있습니다. 배너에는 배너 형식이 있습니다. 배너와 배너 형식 사이에 hasOne의 관계를 구성하려면, 내가 쓴 : 내가 banner.getBannerFormat()를 호출 할 때, 내가 가진sencha touch를 사용하여 hasOne 모델을 얻는 방법

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' 
      } 
     } 
    } 
}); 

:

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 모델

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는 'getModelName'형식을 따르는 연관에 대한 getter 함수를 자동으로 생성합니다. 연결에서 getterName을 제거한 경우 배너 모델의 getter 함수는 사용자가 정의한 것과 동일합니다. 'getBannerFormat';

관련 문제