Вопрос

Ошибка при получении ID справочного поля в карточке

Коллеги , возник вопрос , пытаюсь  скрыть поле при определенном значении      

Делаю это в след коде {"bindTo": "UsrComentVisibility

{

                                                               "operation": "insert",

                                                               "name": "UsrComente8444492-03fc-4abf-ba82-a44b0570c0e4",

                                                               "values": {

                                                                              "layout": {

                                                                                              "colSpan": 12,

                                                                                              "rowSpan": 1,

                                                                                              "column": 0,

                                                                                              "row": 4,

                                                                                              "layoutName": "Header"

                                                                              },

                                                                              "bindTo": "UsrComent",

                                                                              "visible" : {"bindTo": "UsrComentVisibility"}

                                                               },

                                                               "parentName": "Header",

                                                               "propertyName": "items",

                                                               "index": 3

                                               },

В методах описываю логику,

UsrComentVisibility : function(){

                                var visible=false;

                                               var UsrState= this.get("UsrState");//Получаем значение из справочника

                                               var UsrStateId = UsrState.value;  //Получаем Id

            if (UsrStateId==="cee7be84-bcfd-421e-9550-01668dbf2e4d")  {(visible=true);}

                   //         this.showInformationDialog(UsrStateId); 

                                  return visible;

                                  } ,        

                               }, при загрузки страниц выходит ошибка

 

line: undefined

 column: undefined

 message: Cannot read property 'value' of undefined

 

подскажите в чем может быть проблема

Нравится

4 комментария
Лучший ответ

Пользователь13 пишет:

методы, которые забиндены на свойство видимости могут вызываться несколько раз при инициализации страницы. как и в процессе изменения странички. можете вставить в метод дебаггер и проверить. 

Доброе утро. Если справочное поле не заполнено, то строчка

var UsrState= this.get("UsrState");

будет undefined. получить .value от undefined нельзя. Поэтому рекомендую сперва проверять поле на заполненность. Например так:

UsrComentVisibility : function(){
 
	var visible=false;
	var UsrState= this.get("UsrState");//Получаем значение из справочника
	var UsrStateId = UsrState.value;  //Получаем Id
	if (UsrState && UsrState.value === "cee7be84-bcfd-421e-9550-01668dbf2e4d")  {(visible=true);}
 
	return visible;
 
},        

 

поле заполнено,  возможно это из за того что эту функция выполняется в момент открытия карточки ? может еще не все поля заполнились из бд?  

Пользователь13 пишет:

методы, которые забиндены на свойство видимости могут вызываться несколько раз при инициализации страницы. как и в процессе изменения странички. можете вставить в метод дебаггер и проверить. 

Пользователь13 пишет:

поле заполнено,  возможно это из за того что эту функция выполняется в момент открытия карточки ?

А Вы отладьтесь и посмотрите, в какой момент возникает данная ситуация. 

Показать все комментарии