Руковдство по применению компонента flexberry-sitemap-searchbar.

Компонент позволяет совершать поиск по страницам в веб-приложении. Наилучшее место, где его можно внедрять, это боковое меню веб-приложения (sitemap.hbs).

Пример использования с развернутым боковым меню

Картинка использования 1

Картинка использования 2

Картинка использования 3

Пример использования со свернутым боковым меню

Картинка использования 4

Картинка использования 5

Картинка использования 6

Структура компонента 📝

Компонент включает в себя следующие элементы:

  • Строку поиска (id=”sitemap-search”)
  • Блок с выводимыми результатами (id=”results-list”)
  • Блок с результатами формируется из подкомонентов , которые вызывают друг друга рекурсивно.

Использование компонента 🔮

Единственное свойство, которое необходимо передать компоненту, это объект с деревом-сайтмапа.

{{flexberry-sitemap-searchbar
treeContent=model.nodes}}

treeContent - массив объектов, по которым ведётся поиск. Данный массив имеет древовидный вид (N-Array tree), где неизвестно, какой глубины/ ширины этот объект. img

Структура массива treeContent 🧱

Данный компонент позволяет вести поиск по дереву любой глубины и ширины, однако, дерево должно придерживаться определенной структуры. Тип дерева - массив. Объект в дереве является узлом, и может иметь безграничное количество “детей” (тип данных - массив). Главные свойства узла:

  • “link” - string ИЛИ Null (если это вкладка), ссылка на страницу в приложении. Пример использования:
"link": "components-examples/flexberry-button/settings-example"
  • “caption” - object, человекочитаемое название объекта, которое будет отображаться в поиске. *Пример использования:
"caption": {
    "string": "Пример работы с компонентом"
}*)
  • “children” - array ИЛИ Null (если это ссылка), следующий узел в дереве, который включает в себя объекты с вышеупомянутыми свойствами. Пример:
"children": [
{ //Первый подузел-ссылка
        "link": "index",
        "caption": {
            "string": "Главная"
        },
        "title": {
            "string": ""
        },
        "children": null
    }, 
{ // Второй подузел-вкладка
        "link": null, // Так как это вкладка, у него нет ссылки
        "caption": {
            "string": "Приложение"
        },
        "title": {
            "string": ""
        },
        "children": [...] // Вложенный узел
    }]