无法访问Sugar View Controller中的字段

时间:2019-06-20 17:22:53

标签: javascript controller sugarcrm

我在访问视图控制器中的字段值时遇到问题。资源记录视图的控制器从下拉列表中获取一个值,并根据下拉选择来设置字段的值。看起来像这样:

// 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_cproject_manager_l3_rate_c字段的值。 console.log语句的输出为“未定义”。但是,我可以在数据库中看到这些字段的值。当我尝试访问此Resources记录中的其他字段时,结果混合起来。某些字段可以访问,而其他字段则不能。我看不到可以访问其字段的任何模式。 resourcesresources_cstm表中的字段似乎没有什么区别。用this.model.once("sync", this.assignOnChangeFunctions, this)替换this.assignOnChangeFunctions没有区别。我还能尝试解决什么问题?

1 个答案:

答案 0 :(得分:1)

确保要使用的字段位于相关的布局/ viewdef中(对于RecordView和CreateView,通常为record.php)。
否则,为了确保带宽和资源的安全,服务器/ rest-API不会传输字段内容。