ThierryC
30 Jul 2012, 9:16 AM
I'm looking for feedback on best practices for avoiding hardcoding store field names.
I'll use http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture as an example:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['name', 'email']
});
editUser: function(grid, record) {
var email = record.get( 'email' ); // hardcoded field usage
I have devised one scheme, among others that seems to work:
Ext.define('AM.model.UserModelNames', {
FIELD: { NAME: 'name', EMAIL: 'email' },
singleton: true
});
// The model becomes:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: [ AM.model.UserModelNames.FIELD.NAME, AM.model.UserModelNames.FIELD.EMAIL ]
});
// The editUser becomes:
editUser: function(grid, record) {
var email = record.get( AM.model.UserModelNames.FIELD.NAME );
What do you think?
Thanks. Thierry.
I'll use http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture as an example:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['name', 'email']
});
editUser: function(grid, record) {
var email = record.get( 'email' ); // hardcoded field usage
I have devised one scheme, among others that seems to work:
Ext.define('AM.model.UserModelNames', {
FIELD: { NAME: 'name', EMAIL: 'email' },
singleton: true
});
// The model becomes:
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: [ AM.model.UserModelNames.FIELD.NAME, AM.model.UserModelNames.FIELD.EMAIL ]
});
// The editUser becomes:
editUser: function(grid, record) {
var email = record.get( AM.model.UserModelNames.FIELD.NAME );
What do you think?
Thanks. Thierry.