Не удается получить доступ к полям в контроллере представления Sugar - PullRequest
1 голос
/ 20 июня 2019

У меня проблема с доступом к значениям полей в контроллере представления.Контроллер для представления записей ресурсов берет значение из раскрывающегося списка и устанавливает значение поля в зависимости от выбранного раскрывающегося списка.Это выглядит так:

// 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 являются «неопределенными».Но я могу видеть значения этих полей в базе данных.Когда я пытаюсь получить доступ к другим полям в этой записи Resources, результаты смешиваются.Некоторые поля доступны, а другие нет.Я не вижу шаблонов, к которым можно получить доступ к полям.Кажется, не имеет значения, находится ли поле в таблице resources или resources_cstm.Замена this.model.once("sync", this.assignOnChangeFunctions, this) на this.assignOnChangeFunctions не имеет значения.Что еще я могу попытаться устранить это?

1 Ответ

1 голос
/ 21 июня 2019

Убедитесь, что поля, которые вы хотите использовать, находятся в рассматриваемом макете / viewdefs (обычно record.php для RecordView и CreateView).
В противном случае содержимое поля не будет передано сервером / rest-API для безопасной пропускной способности и ресурсов.

...