Transfer components

Добрый день!

Не подскажите такой вопрос. Допустим есть интерфейс вот такой http://webix.com/snippet/dcc20916 (на самом деле не имеет значение какой (: ) в котором есть кнопка и первоначальные какие-либо компоненты инициализированные, возможно ли при нажатии на кнопку “make magic” перенести уже имеющиеся компоненты в новый лайаут с сохранением всех уже имеющихся навешанных событий и т.д.? чтобы получилось примерно такое http://webix.com/snippet/997eb6ab . Т.е. в свежесозданное выезжающее меню была перенесена таблица и кнопка ну по сути $$(‘magic’)

Спасибо!

Добрый день,

Можно копировать конфигурацию интерфейса и использовать её повторно в нужных местах в приложении. События в таком случае надо задавать в конфигурации нужного компонента через свойство on:

var magic = {       
  rows: [
    {view:"datatable", autoConfig:true, data:grid_data },
    {view: 'button', label: 'Вжух', on:{
      'onItemClick': function(){ ... }
    }}
  ]
} 
...
rows:[ webix.copy(magic)]

Пример: http://webix.com/snippet/f1fb8879

Статические id при таком подходе использовать нельзя, т.к. у каждого компонента должен быть уникальный id. Если это необходимо, можно задать свойство isolate для каждого элемента, который содержит этот конфиг.

я наверно не точно выразился. Мне не надо дублировать или копировать во множество мест одни и те же компоненты. Мне необходимо уже созданный и инициализированный компонент перенести в новый лайаут с сохранением событий которые уже навешены на нём (:

Нет, именно такой возможности нет.

Можно только хранить нужный конфиг и добавлять новый компонент в существующий layout, попутно удаляя соответствующий компонент в другом месте

var config = { id:"magicrows" };
layout1.rows = config;
...
layout1.removeView("magicrows")
layout2.addView(config);

http://webix.com/snippet/aa06d0b6

Или, то же самое через webix.ui(): http://webix.com/snippet/89d58923

webix.ui({}, $$("magicrows"));
webix.ui(magic, $$("menu_body").getChildViews()[0]);

Принцип работы тот же, но добавляется spacer вместо удаленного компонента и на месте будущего компонента.

Документация по этой теме.

Спасибо большое за разъяснения, да с документацией я ознакомился и поэтому возник такой вопрос (: