Коллеги , возник вопрос , пытаюсь скрыть поле при определенном значении
Делаю это в след коде {"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
подскажите в чем может быть проблема
Нравится
Пользователь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 пишет:
поле заполнено, возможно это из за того что эту функция выполняется в момент открытия карточки ?
А Вы отладьтесь и посмотрите, в какой момент возникает данная ситуация.