ExtJS 6.2如何配置store使其生成仅含数字的ID
ExtJS 6.2 实现新增Model生成纯数字ID的方案
可以实现,自动生成ID的规则由Model的identifier(标识符)配置控制,与store无关,按以下方法配置即可输出纯数字格式的ID。
配置说明
ExtJS 6.2默认给所有Model使用sequential(序列)类型的标识符,默认规则为{模型名}{分隔符}{自增数字},默认分隔符为-,所以会生成User-1这类格式的ID,我们只需要修改前缀和分隔符的配置即可。
方案1:针对单个Model配置
如果只需要某类Model生成纯数字ID,直接在Model定义中添加identifier配置即可:
Ext.define('User', { extend: 'Ext.data.Model', fields: ['name', 'email'], // 自定义序列标识符 identifier: { type: 'sequential', prefix: '', // 前缀设为空 separator: '' // 分隔符设为空 } });
方案2:全局配置所有Model默认生成纯数字ID
如果需要所有新增的Model默认都生成纯数字ID,全局重写序列标识符的默认配置即可:
// 全局修改默认序列标识符规则 Ext.apply(Ext.data.identifier.Sequential.prototype, { prefix: '', separator: '' });
验证效果
配置完成后,向store新增条目即可获取纯数字ID:
// 初始化store const userStore = Ext.create('Ext.data.Store', { model: 'User' }); // 新增2条测试数据 userStore.add([ {name: '张三', email: 'zhangsan@test.com'}, {name: '李四', email: 'lisi@test.com'} ]); // 打印ID验证 console.log(userStore.getAt(0).getId()); // 输出 1 console.log(userStore.getAt(1).getId()); // 输出 2
内容的提问来源于stack exchange,提问作者user5507535
相关产品推荐
相关产品推荐

