2017-01-13 4 views
2

В моем приложении aurelia у меня есть система меню на основе навигационной панели и вкладка начальной загрузки. Всякий раз, когда я выбираю элемент меню, новая вкладка добавляется к вкладке, показывая содержимое/представление, принадлежащее выбранному пункту меню. Я получаю этот контент/представление с сервера (MVC).Aurelia динамически добавляет загрузочную вкладку

$('.tab-content').append(`<div class="tab-pane" id="tab${menuItem.id}" role="tabpanel"></div>`); 
    ... // fetch view from server 
    $(tab).html('fetched content'); 

Это прекрасно работает, пока «извлеченный контент» является чистой строкой. Однако, как только я выборка с видом Aurelia (как «

<template>some content</template>

»), то браузер заворачивает сгружено содержание с „# документом-фрагментом“ и содержание не отображаются.

Я новичок в Aurelia, поэтому я подозреваю, что у меня нет чего-то фундаментального здесь. Что мне нужно сделать, чтобы сделать эту работу?

P.S. Я также попытался улучшить механизм шаблонов после установки html, но безрезультатно.

+0

Усиление должно было работать, но независимо от того, работает оно или нет, я думаю, вам следует избегать сбора компонентов с сервера. Сервер и клиент должны быть независимыми друг от друга. –

+0

Почему вы используете jQuery для добавления HTML вместо использования Aurelia для этого? –

ответ

0

После значительных царапин на голове я понял, что оба комментария указывают в правильном направлении и что мой подход был испорчен. Недостаток двух учетных записей: во-первых, я нарушал концепцию MVVM, добавляя элемент DOM (панель вкладок) прямо, а не добавляя в viewmodel и позволяя Aurelia справляться с тяжелым подъемом. Во-вторых, я пытался обойти механизм маршрутизации Aurelia, перейдя непосредственно на сервер и получив мой взгляд оттуда. Неудивительно, что у меня были проблемы ... Я вернулся к чертежной доске.

Thx для вашей поддержки, ребята.

+0

P.S. https://gist.run/?id=b3df9d740a3cf3d31098c83c9ffe8614 показывает рабочий образец для конкретной ситуации, с которой я боролся. – bluewater