ExtJS 5.0,在调用viewModel.linkTo()时由于模型命名空间而出错
我有一个模型,它位于域文件夹I:e中ExtJS 5.0,在调用viewModel.linkTo()时由于模型命名空间而出错,extjs,extjs5,Extjs,Extjs5,我有一个模型,它位于域文件夹I:e中 app |--model |--domain1 |--ApplicationInfoModel |--AddressModel |--ProducerInfoModel |--CarrierInfoModel |--ApplicantInfoMod
app
|--model
|--domain1
|--ApplicationInfoModel
|--AddressModel
|--ProducerInfoModel
|--CarrierInfoModel
|--ApplicantInfoModel
|....
|--domain2
|
|--AddressModel
|....
现在,当我尝试使用viewModel的linkTo动态加载数据时
requires: [
'Ext.MessageBox',
'RA.model.domain1.ApplicationInfoModel',
'RA.model.domain1.ApplicantInfoModel'
],
....
....
....
init:function()
{
this.getViewModel().linkTo('applicationData',
{
reference:"ApplicationInfoModel",
id:'appl-0000001',
autoLoad:true
});
}
我得到一个错误,因为
[E] Ext.app.ViewModel.getRecord(): Invalid model name:
ApplicationInfoModelUtil.js:Util.js:710
Objectmsg: "Invalid model name: ApplicationInfoModel"
sourceClass: "Ext.app.ViewModel"
sourceMethod: "getRecord"
有什么建议吗
编辑
我的所有模型都从我的基础模型扩展而来
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)
有关情况如下:
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'
}
],
您需要使用完全限定的模型名称。作为使用完全限定的模型名称的替代方法,您还可以使用名称空间(基本上是从模型名称的开头插入的前缀)配置架构。从:
其中,
MyApp.models.Base
被用作您自己模型的父类。可能是键入错误,但您的域文件夹中没有RA.model.domain1.ApplicationInfoModel
。我已经尝试过了,但它会给我错误。=“GET 404(Not Found)。”我的架构已经在使用基(很抱歉没有包含这部分代码),问题在于需要添加另一个域层嵌套。好的。好的,对于这个名称空间和您的模型类名,使用引用:“domain1.ApplicationInfoModel”
。是的,这是一个输入错误。如果我不将我的模型分离到不同的域文件夹中,我的整个代码就可以工作。
Ext.define('MyApp.models.Base', {
extend: 'Ext.data.Model',
schema: {
namespace: 'MyApp.models'
}
});