2014-11-26 2 views
0

나는 도메인 폴더 내가 내에있는 모델이 : 나는 데이터를로드하려고 할 때 이제 전자의 ExtJS 5.0 인해 모델 네임 스페이스에 viewModel.linkTo() 호출하는 동안 오류가 발생

app 
    |--model 
     |--domain1 
        |--ApplicationInfoModel 
        |--AddressModel 
        |--ProducerInfoModel 
        |--CarrierInfoModel 
        |--ApplicantInfoModel 
        |.... 
     |--domain2 
        | 
        |--AddressModel 
        |.... 

을 동적으로 내가

 [E] Ext.app.ViewModel.getRecord(): Invalid model name:     
     ApplicationInfoModelUtil.js:Util.js:710 
     Objectmsg: "Invalid model name: ApplicationInfoModel" 
     sourceClass: "Ext.app.ViewModel" 
     sourceMethod: "getRecord" 

어떤 제안이 같은 오류를 얻고있다

requires: [ 
    'Ext.MessageBox', 
    'RA.model.domain1.ApplicationInfoModel', 
    'RA.model.domain1.ApplicantInfoModel'   
    ], 
    .... 
    .... 
    .... 
    init:function() 
    { 
     this.getViewModel().linkTo('applicationData', 
     {    
      reference:"ApplicationInfoModel", 
      id:'appl-0000001',      
      autoLoad:true 
     }); 
    } 

뷰 모델의 LINKTO 사용 ???

편집

내 모델이 확장 된 내 기본 모델.

Ext.define('RA.model.Base', { 
extend: 'Ext.data.Model', 

fields: [{ 
    name: 'id', 
    type: 'int' 
}], 
schema: { 
    namespace: 'RA.model', 
    urlPrefix:'app/model', 
    proxy: { 
     url: '{prefix}/{entityName}', 
     pageParam: '', 
     startParam: '', 
     limitParam: '' 
    } 
} 
}); 

편집 2 :

나도 같은 기준 포함하는 경우 :

reference:'domain1.ApplicationInfoModel', 

-- or -- 

reference:'RA.model.domain1.ApplicationInfoModel', 

내가 아래에 오류가 발생,이 같은 도메인에 관련된 모델을 가져 오는 경우에 발생합니다.

GET http://localhost:8080/ra-ui/js/app/model/domain1.ApplicantInfoModel?_dc=1417096649804 404 (Not Found) 

assoicaiton은 다음과 같습니다 :

Ext.define('RA.model.domain1.ApplicationInfoModel', 
{ 
requires:['RA.model.domain1.ProducerInfoModel', 
      'RA.model.domain1.CarrierInfoModel', 
      'RA.model.domain1.ApplicantInfoModel' 
      ],  
extend: 'Ext.data.Model', 
idProperty:'appid', 
fields:[{ 
      name:'appid',type:'string' 
     }, 
     { 
      name:'producer', 
      reference:'ProducerInfoModel' 
     }, 
     { 
      name:'carrier', 
      reference:'CarrierInfoModel' 
     }   
     ], 
hasMany:[  
    {   
     name:'applicants',   
     model:'RA.model.domain1.ApplicantInfoModel' 
    } 
], 

답변

0

당신은 정규화 된 모델 이름을 사용해야합니다.

+0

나는 그것을 시도했지만 오류가 발생합니다. = "get http : // localhost : 8080/myapp/js/app/model/domain1.ApplicantInfoModel? _dc = 1417060630545 404 (찾을 수 없음)" –

0

정규화 된 모델 이름을 사용하는 대신 네임 스페이스 (기본적으로 모델 이름에서 오는 접두사)를 사용하여 스키마를 구성 할 수도 있습니다. docs에서 : MyApp.models.Base가 자신의 모델에 대한 부모 클래스로 사용됩니다

Ext.define('MyApp.models.Base', { 
    extend: 'Ext.data.Model', 

    schema: { 
    namespace: 'MyApp.models' 
    } 
}); 

.

+0

내 스키마는 이미 Base를 사용하고 있습니다. 코드) 문제는 중첩 된 다른 도메인 계층을 추가해야한다는 것입니다. –

+0

오케이. 음, 네임 스페이스와 모델 클래스 이름을 사용하려면'reference : "domain1.ApplicationInfoModel"'을 사용하십시오. –

0

실수로 입력 한 내용 일 수도 있지만 도메인 폴더에 RA.model.domain1.ApplicationInfoModel이 없습니다.

+0

예. 오타였습니다. 모델을 다른 도메인 폴더로 분리하지 않으면 전체 코드가 작동합니다. –