无法访问 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_cproject_manager_l3_rate_c 字段的值。 console.log 语句的输出是 "undefined"。但是,我可以在数据库中看到这些字段的值。当我尝试访问此 Resources 记录中的其他字段时,结果好坏参半。有些字段可以访问,有些则不能。我没有看到可以访问哪些字段的任何模式。一个字段在 resourcesresources_cstm table 中似乎没有区别。将 this.model.once("sync", this.assignOnChangeFunctions, this) 替换为 this.assignOnChangeFunctions 没有任何区别。我还能尝试什么来解决这个问题?

确保您要使用的字段在相关 layout/viewdefs 中(对于 RecordView 和 CreateView,通常 record.php)。
否则字段内容将不会被 server/rest-API 传输以保证带宽和资源安全。