我有一个位于域文件夹i:e
内的模型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"
任何,建议???
修改
我所有模型的My Base模型。
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'
}
],
答案 0 :(得分:0)
您需要使用完全限定的型号名称。
答案 1 :(得分:0)
作为使用完全限定模型名称的替代方法,您还可以使用命名空间(基本上是从模型名称中输入的前缀)配置模式。来自docs:
Ext.define('MyApp.models.Base', {
extend: 'Ext.data.Model',
schema: {
namespace: 'MyApp.models'
}
});
其中MyApp.models.Base
被用作您自己模型的父类。
答案 2 :(得分:0)
也许这是一个错误的类型,但您的域名文件夹中没有RA.model.domain1.ApplicationInfoModel
。