我正在使用ExtJS 5,我试图找到一种方法来在几个不同的ViewModel中使用模型中定义的代理,为任何特定的ViewModel添加不同的extraParams。这是一个简化的代码,试图说明我正在尝试做什么(请原谅与问题无关的任何小错误 - 这不是我的实际代码)。基本上,我在模型中有一个代理,其中包含一些所有ViewModel都需要的paramsToPath。在特定的ViewModel中,我想添加一些额外的参数(可选,可能不会在其他ViewModel中添加)。这不起作用 - 我希望我可以使用在模型(或商店)中定义的代理,并在ViewModel中添加修改。我已经尝试在ViewModel中添加一些extraParams,希望那些extraParams合并到模型中定义的代理,但它不起作用。关于如何实现这一目标的任何想法?
以下是模型:
Ext.define('EmployeeManager.model.Employee', {
extend : 'EmployeeManager.model.Base',
idProperty : 'id',
fields : [ {
name : 'id',
type : 'string'
}, {
name : 'name',
reference : 'string'
} ],
proxy : {
paramsToPaths : [ {
params : [ 'locationId' ],
path : '/location/{0}'
} ]
}
});
这是商店:
Ext.define('EmployeeManager.store.Employees', {
extend : 'Ext.data.Store',
alias : 'store.employees',
requires : [ 'EmployeeManager.model.Employee' ],
model : 'EmployeeManager.model.Employee'
});
这是ViewModel:
Ext.define('DpcManager.view.dpc.copy.EmployeeModel', {
extend : 'Ext.app.ViewModel',
alias : 'viewmodel.employee',
data : {
locationId: null,
employeeName: null
},
stores : {
employeeStore : {
type : 'employees',
remoteFilter : true
proxy: {
type : 'rest',
url : '../employee-services/employee/',
extraParams: {
fields: 'id,personId',
locationId: '{locationId}',
name: '{employeeName}'
}
}
}
}
});