Я разрабатываю приложение с Ember CLI версии 2.6.1 и использую библиотеку пользовательского интерфейса под названием Webix.
Webix генерирует html через JavaScript следующим образом:
var accordion = webix.ui({
view:"accordion",
type:"wide",
cols:[
{ header:"col 1", body:"content 1", width:150 },
{ header:"col 2", body:"content 2", width:150 },
{ header:"col 3", body:"content 3", width:150 },
{ header:"col 4", body:"content 4", width:150 },
{ header:"col 5", body:"content 5", width:150 }
]
});
Webix импортируется в мое приложение Ember, и я могу сгенерировать компонент с таким синтаксисом, создав экземпляр в JS-файле компонента вместо файла Handlebars (где он будет жить, если я использую html).
Как это:
import Ember from 'ember';
export default Ember.Component.extend({
didRender: function() {
webix.ui({
container: this.container,
height: 585,
view:"accordion",
type: "line",
rows:[
{
header:"Panel 1",
body: {
padding: 10,
rows: [
{
view:"textarea",
labelAlign:"right",
//height:150,
value: "type here"
},
{
view:"textarea",
labelAlign:"right",
//height:150,
value: "type here"
}
]
}
}
]
});
}
});
}
Это прекрасно работает, но по мере роста сложности приложения у меня будет один ГИГАНТСКИЙ компонент, который будет невозможно поддерживать.
Я хотел бы извлечь вложенные представления Webix в их собственные компоненты, которые создаются по мере необходимости.
Как это:
Мой родительский компонент создан в Handlebars, но поскольку компонент Webix имеет собственную методологию вложения, я не могу просто добавить новый компонент:
Поскольку структура компонента обычно создается с помощью Handlebars с переданными туда свойствами, как я могу вложить компонент в другой до того, как его родитель будет загружен в Handlebars?