Работа с компонентами клиентского кода

Помогите с обьяснением

Вот к примеру в схеме обьекта:

diff: /**SCHEMA_DIFF*/[

    {

        "operation": "insert",

        "name": "UsrSchema13Detail1dcd436c",

        "values": {

            "itemType": 2,

            "markerValue": "added-detail",

            "visible":{"bindTo": "myFunction"} //

        },

        "parentName": "Tabcf202d7cTabLabel",

        "propertyName": "items",

        "index": 5

    }

]

 "visible":{"bindTo": "myFunction"}  - Эта функция отрабатывает только в момент инициализации???

Как динамически поменять свойство видимости view элемента? 

Например у меня поменялся статус в справочнике представленным view элементом в разделе и мне нужно отобразить на странице деталь(по умолчанию она скрыта)

Нравится

2 комментария

"Как динамически поменять свойство видимости view элемента?" — Биндить на аттрибут.

" "visible":{"bindTo": "myFunction"}  - Эта функция отрабатывает только в момент инициализации???" — уж не знаю когда, но отрабатывает она по несколько раз при загрузке страницы (подозреваю, что при рендеринге и ререндеринге элемента)

Роман. "visible":{"bindTo": "myFunction"}  по факту делает одностороннее связывание. Вызов функции или же проверка атрибута будут происходить при любом изменении в модели (т.е. даже если вы поменяете соседнее тектосвое поле). И да, Данила подметил верно, при рендеринге и инициализации страницы вызов функции может произойти несколько раз, по этому не стоит громоздить в подобные функции много логики и точно не стоит в них хоть как-то менять остальную модель. 

Лучше всего проверять значения соседних полей и основываясь на их содержании менять возвращаемое значение. К примеру:

myFunction: function() {

      return this.get("UsrSTRING") === "123";

}

 

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