无法访问 Sugar 视图控制器中的字段
Can't access fields in Sugar view controller
我在访问视图控制器中的字段值时遇到问题。 Resources 记录视图的控制器从下拉列表中获取一个值,并根据下拉列表选择设置字段的值。它看起来像这样:
// 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;
}
},
})
创建视图的控制器看起来就像上面一样,除了它从 CreateView
扩展而不是 this.model.once("sync", this.assignOnChangeFunctions, this)
我有 this.assignOnChangeFunctions
。创建控制器按预期工作。但是记录控制器无法访问 project_manager_l2_rate_c
和 project_manager_l3_rate_c
字段的值。 console.log 语句的输出是 "undefined"。但是,我可以在数据库中看到这些字段的值。当我尝试访问此 Resources
记录中的其他字段时,结果好坏参半。有些字段可以访问,有些则不能。我没有看到可以访问哪些字段的任何模式。一个字段在 resources
或 resources_cstm
table 中似乎没有区别。将 this.model.once("sync", this.assignOnChangeFunctions, this)
替换为 this.assignOnChangeFunctions
没有任何区别。我还能尝试什么来解决这个问题?
确保您要使用的字段在相关 layout/viewdefs 中(对于 RecordView 和 CreateView,通常 record.php
)。
否则字段内容将不会被 server/rest-API 传输以保证带宽和资源安全。
我在访问视图控制器中的字段值时遇到问题。 Resources 记录视图的控制器从下拉列表中获取一个值,并根据下拉列表选择设置字段的值。它看起来像这样:
// 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;
}
},
})
创建视图的控制器看起来就像上面一样,除了它从 CreateView
扩展而不是 this.model.once("sync", this.assignOnChangeFunctions, this)
我有 this.assignOnChangeFunctions
。创建控制器按预期工作。但是记录控制器无法访问 project_manager_l2_rate_c
和 project_manager_l3_rate_c
字段的值。 console.log 语句的输出是 "undefined"。但是,我可以在数据库中看到这些字段的值。当我尝试访问此 Resources
记录中的其他字段时,结果好坏参半。有些字段可以访问,有些则不能。我没有看到可以访问哪些字段的任何模式。一个字段在 resources
或 resources_cstm
table 中似乎没有区别。将 this.model.once("sync", this.assignOnChangeFunctions, this)
替换为 this.assignOnChangeFunctions
没有任何区别。我还能尝试什么来解决这个问题?
确保您要使用的字段在相关 layout/viewdefs 中(对于 RecordView 和 CreateView,通常 record.php
)。
否则字段内容将不会被 server/rest-API 传输以保证带宽和资源安全。