Датабиндинг не не таблицы

Добрый день!
Есть данные, которые подгружаются асинхронно.
Вопрос, возможно ли их как-то привязать не прибегая к использованию callback onInit, OnLoad и пр.
http://webix.com/snippet/7a4f8890

Добрый день!

Это можно сделать через template, так как он оперативно перерисовывается при изменении данных:

http://webix.com/snippet/67fa6201

А если это label допустим. Он в данном случае функцию возвращает как строку :frowning:
Но в принципе, можно использовать внешнюю функцию.
Вопрос немного даже другой, возможна какая-то отложенная загрузка как-бы.
Т.е у меня асинхронно загружаются модели, но в тоже время подгружаются компоненты webix. Как только мои данные загрузятся - webix посмотрит что у него прописано в template, label, value и пр. и обновит соответвующие данные.

Сейчас просто приходится использовать его эвенты или ждать загрузки моделей и лишь затем рендерить UI.

label - это не дата-компонент, поэтому придётся обновлять его через define.

Отследить момент, когда будут загружены все модели, возможно через promise API:

webix.ui(/**/);

a = webix.ajax("someA.php");
b = webix.ajax("someB.php");
c = webix.ajax("someC.php");
 
webix.promise.all(a,b,c).then(function(a,b,c){
   /* вот здесь будут доступны все данные */   
});

а как template реагирует на изменение данных? если поменять info.title после инициализации, то никакой реакции не видно. (если data задать как info, само собой)

@intregal,

а как template реагирует на изменение данных?

Зависит от того, каким образом изменяются данные. При загрузке новых данных (load()/parse()) компонент будет перерисован - это, собственно, и имелось в виду.

Если Вы меняете объект, из которого уже взяты данные, то ничего не произойдёт - компонент никак не связан с этим объектом после однократной загрузки.

Если изменяете данные в конфигурации ui.template, то нужен метод refresh(), так как при прямом изменении объекта не вызывается никаких событий:

template.data.title = "newtitle";
template.refresh()

То же самое справедливо и для всех остальных data-компонент, которые работают с массивом данных (ui.datatable, ui.tree, etc.). Но если какую-то запись там нужно поменять программно, то вместо refresh()для этого следует использовать метод updateItem():

datatable.getItem(id).value = "New value"
datatable.updateItem(id);