如何在不同的ViewModel中使用相同的ExtJS模型代理进行修改?

时间:2016-05-23 16:06:38

标签: extjs

我正在使用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}'
             }
         }
    }
  }
});

0 个答案:

没有答案