Свойства Webix компонентов можно менять после инициализации с помощью метода define(). Метод принимает следующие параметры:
Вы можете применить этот метод к любому объекту, указав его ID:
// задаёт новую высоту компонента
$$("mylist").define("height", 300);
$$("mylist").refresh();
// меняет ярлык кнопки
$$("button1").define("label", "New value");
$$("button1").refresh();
Метод также может принимать хэш пар свойство-значение дял изменения нескольких свойств сразу:
// задаёт новую ширину и высоту компоненту
$$("mylist").define({
width:300,
height: 300
});
$$("mylist").refresh();
Webix предлагает и другие, отличные от метода define(), решения для подобных задач. Рекомендуем поискать подходящий вам метод на странице API прежде чем использовать метод define().
Для того чтобы новые свойства вступили в силу, вам следует обратиться к одному из следующих методов изменяемого компонента:
$$("layout").define("rows", [ {view:"button", ...}, {view:"label", ...} ]);
$$("layout").reconstruct();
Метод reconstruct() считается устаревшим. Мы рекомендуем использовать более слвоеменные техники, описанные здесь.
Вы можете получить доступ к желаемому параметру через свойство config.
// доступ к высоте
var height = $$("myList").config.height;
// устанавливаем новое значение
$$("myList").config.height = 400;
$$("muList").resize();
Изменение свойств компонента особенно удобно в случаях чтения и установки значений элементов компонента, которые хранятся в свойстве array.
Задаём ширину столбца колонки
webix.ui({
view:"datatable",
id:"mytable",
columns:[
{ id:"col_1", header:"Film title",width:200},
{ id:"col_2", header:"Released" , width:80}
]
})
// читаем ширину первой колонки
var colWidth = $$("mytable").config.columns[0].width; // 200
// изменяем размер первой колонки
dtable.resize();
Свойство type у компонентов данных задаёт внешний вид скорее элементам компонента, чем самому компоненту.
webix.ui({
view:"list",
type:{
width:200, // ширина элемента
height: 50
},
width: 250 // ширина списка
..
});
Чтобы переопределить ширину элемента, вместо метода define() используйте customize(). Параметры остаются те же:
$$("list1").customize({ width:210}); // изменяется ширина элемента
$$("list1").refresh();
Подробнее о свойстве Type.
Наверх