I'm having a problem accessing field values in a view controller. I have a controller for the Resources record view that takes a value from a dropdown and sets the value of a field depending on the dropdown selection. It looks like this:
// custom/modules/Resources/clients/base/views/record/record.js
extendsFrom: 'RecordView',
({
initialize: function (options) {
this._super('initialize', [options]);
this.model.once("sync", this.assignOnChangeFunctions, this);
},assignOnChangeFunctions: function () {
this.model.on('change:custom_rate', this.custom_rate_changed, this);
},custom_rate_changed: function() {
console.log('project_manager_l2_rate_c: ' + this.model.get('project_manager_l2_rate_c'));
console.log('project_manager_l3_rate_c: ' + this.model.get('project_manager_l3_rate_c'));
switch(this.model.get('custom_rate')) {
case 'Project Manager L2':
this.model.set('resource_rate_actual', this.model.get('project_manager_l2_rate_c'));
break;
case 'Project Manager L3':
this.model.set('resource_rate_actual', this.model.get('project_manager_l3_rate_c'));
break;
}
},
})
Controller for the create view looks just like the above, except it extends from CreateView and instead of this.model.once("sync", this.assignOnChangeFunctions, this) I have this.assignOnChangeFunctions. The create controller works as expected. But the record controller can't access the values of project_manager_l2_rate_c and project_manager_l3_rate_c fields. The output from console.log statements is "undefined". But, I can see the values of these fields in the database. When I try to access other fields in this Resources record, the results are mixed. Some of the fields can be accessed and others cannot. I don't see any pattern for which fields can be accessed. It seems to make no difference whether a field is in resources or resources_cstm table. Replacing this.model.once("sync", this.assignOnChangeFunctions, this) with this.assignOnChangeFunctions makes no difference. What else can I try to troubleshoot this?