Я разрабатываю приложение с Ember CLI версии 2.6.1, и я использую библиотеку пользовательского интерфейса под названием Webix.Ember.js - Могу ли я вставить компонент в другой, прежде чем он будет добавлен в шаблон Handlebars?
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 импортируется в мое приложение Эмбер, и я могу генерировать компонент с этим синтаксисом путем создания экземпляра в файле JS компонента вместо рули файл (где он будет жить, если я использую 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 в свои собственные компоненты, которые создаются по мере необходимости.
Как это:
Мой родительский компонент создается в Рули, но так как компонент Webix имеет свою собственную методологию вложенности, я не могу просто бросить в новый компонент:
Поскольку структура компонента обычно состоит из ручек с переданными свойствами, как я могу вложить компонент в другой до того, как его родитель загрузится в Handlebars?
Элементы управления компоновкой Webix UI имеют методы addView, которые позволяют добавлять строки и столбцы «на лету», поэтому подход выше должен быть действительно возможен. – Aquatic