- //Store层调用:
- //models:modelFactory.getModelByName('Rayn.model.User');
- Ext.define('Rayn.model.modelFactory',{
- //数据类模型的集合
- models: new Ext.util.MixedCollection(),
- //字段集
- fields: new Ext.util.MixedCollection(),
- //字段验证集
- validations: new Ext.util.MixedCollection(),
- getModelByName:function(modelName){
- if(this.models.containsKey(modelName){
- return modelName;
- }
- else{
- var fields = [];
- var validations = [];
- //如果包含fields的属性;
- if(this.fields.containsKey(modelName){
- fields = this.fields.containsKey(modelName);
- validations = this.validations.containsKey(modelName);
- }else{
- //一定要是同步,否则会出现不一致的情况。
- //请求没有完毕,而程序已经执行完毕。
- Ext.Ajax.request({
- url:'getFieldsAndValidations.action?modelName=' + modelName,
- method:'get',
- timeout:4000,
- async:false, //不使用异步
- success:function(response, opts){
- if(response.responseText.success){
- //解析JSON,为fields赋值
- fields = eval(response.responseText.fields);
- //解析JSOn,为验证字段赋值;
- validations = eval(response.responseText.validations);
- }
- else{
- Ext.Msg.alert('提示信息',response.responseText.message);
- }
- },
- failure: function(response, opts) {
- Ext.Msg.alert('提示信息','数据请求错误,请稍候重新尝试获取数据……');
- }
- });
- }
- this.fields.add(modelName, fields);
- this.validations.add(modelName, validations);
- var newModel = Ext.define(modelName, {
- extend:'Ext.data.Model',
- fields:fields,
- validations:validations
- });
- this.models.add(modelName, newModel);
- return modelName;
- }
- };
- });
- var modelFactory = Ext.create('Rayn.model.modelFactory',{});
- //该片段来自于http://www.codesnippet.cn/detail/130520149544.html
来源: http://www.codesnippet.cn/detail/130520149544.html