我在访问视图控制器中的字段值时遇到问题。资源记录视图的控制器从下拉列表中获取一个值,并根据下拉选择来设置字段的值。看起来像这样:
// custom/modules/Resources/clients/base/views/record/record.js
({
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;
}
},
})
用于create view的控制器与上面的外观类似,只是它从CreateView
扩展而来,而不是this.model.once("sync", this.assignOnChangeFunctions, this)
,我拥有this.assignOnChangeFunctions
。创建控制器按预期方式工作。但是记录控制器无法访问project_manager_l2_rate_c
和project_manager_l3_rate_c
字段的值。 console.log语句的输出为“未定义”。但是,我可以在数据库中看到这些字段的值。当我尝试访问此Resources
记录中的其他字段时,结果混合起来。某些字段可以访问,而其他字段则不能。我看不到可以访问其字段的任何模式。 resources
或resources_cstm
表中的字段似乎没有什么区别。用this.model.once("sync", this.assignOnChangeFunctions, this)
替换this.assignOnChangeFunctions
没有区别。我还能尝试解决什么问题?
答案 0 :(得分:1)
确保要使用的字段位于相关的布局/ viewdef中(对于RecordView和CreateView,通常为record.php
)。
否则,为了确保带宽和资源的安全,服务器/ rest-API不会传输字段内容。