Одним из преимуществ, по которым перешел на pro версию, является возможность xml инициализации объектов.
Сталкиваюсь с некоторыми сложностями — возможно, они описаны в документации, но мне не удалось на них попасть, поэтому решил для коллег написать их здесть — может быть, кто то тоже идет по тому же пути.
- все аттрибуты тектовые. Это вызывает массу сложностей, причем даже примеры, которые описаны в доке не работают.
Вот типичные примеры:
fillspace=true не работает, как и любые аттрибуты в xml, так как они воспринимаются ни как булевые, а как стринговые.
Чтобы работало, например, fillspace, нужно прописать, например, на onAfterLoad функцию в которой бы было:
datatable.getColumnConfig(columnId).fillspace = true
(потом можно сделать datatable.refresh();
datatable.refreshColumns()
При использовании editor=”multiselect” параметр optionlist воспринимается как стринговый — чуть с ума не сошел пока искал, почему не отображается. Параметр optionlist должен быть (может быть так задумано, в доке не нашел) строчкой разделителем, в дефолтовом виде optionslist="," так как на 9925 строчке в webix_debug он определяется как стринговый, и соответственно, считается разделителем
-
Атрибуты зачем то переводятся к нижнему регистру. В этой связи, если Вы создали кастомный объект и назвали его myObject, его не инициализировать как <myObject … Его нужно инициализировать как <myobject
-
Для того, чтобы инициализировать компоненты, нужно, как видно, очень много всего сделать через функцию. Конечно, хочется, чтобы это можно было делать одним запросом.
Может быть, кто нибудь поделится тем, как именно Вы производите инициализацию объектов, на какое событие вешаете.
Я сейчас вешаю, чаще всего фунции на одну из таблиц, на которой загружаются данные.
В идеальной ситуации нужно какое то событие на layout – типа webix.ready только для xml, чтобы функцию можно было засунуть туда и она бы выполнилась как только xml проинициализирован и встроен в dom.
Если у кого то есть tips, напишите их пожалуйста — готовые кейсы это было бы очень здорово.