Aurelia - Как создавать составные приложения, которые можно загружать во время выполнения - PullRequest
0 голосов
/ 29 января 2019

То, что я пытаюсь сделать в Aurelia, - это то, что Prism делает в приложениях WPF-Composite.

Итак, допустим, у меня есть приложение "shell", которое определяет основной макет приложения, а затем яесть модули, которые я могу подключить во время выполнения.Этими модулями может быть само приложение Aurelia или плагин Aurelia (не знаете, что использовать - нужна рекомендация).После загрузки модуль должен добавить свои пункты меню в главное меню приложения, чтобы раскрыть его возможности.

Это макет приложения:

The Main application shell that shows modules/features in the menu on the left side.

Каждый модуль может иметь несколько пунктов меню и можетбыть довольно сложным.

Я использую последний Typescript, Aurelia-CLI для создания приложения, и я использую встроенный пакет: Новый встроенный пакет Aurelia .

Итак, чего я не знаю:

  1. Эти модули / функции - какими они должны быть?(Может быть, плагины Aurelia или другое приложение Aurelia?)

  2. Как загрузить эти модули / функции во время выполнения?(например, развернуть его в папке с некоторыми плагинами и указать основному приложению оболочки загрузить их)

  3. Как изменить главное меню и добавить новые пункты меню из загруженного модуля?

Пожалуйста, помогите

1 Ответ

0 голосов
/ 31 января 2019

Aurelia поддерживает ультра-динамические приложения.Кроме того, были и другие члены сообщества, которые предъявляли аналогичные требования и смогли их решить.Так что я думаю, что сценарий возможен.


  1. Кажется, субприложение может быть просто маршрутом. Как / где загрузить маршрут следует определять на основании URL-адреса приложения
  2. Этим модулям не нужно делать ничего конкретного, они могут быть просто обычным классом JS / TS с методами жизненного цикла для обработки активации / деактивации.Я полагаю, что основной оболочке и всем подпрограммам необходимо иметь общий URL-адрес, у вас не может быть более одного маршрутизатора.
  3. Может существовать одно-центральное хранилище для нового маршрута для регистрации информации о загруженных функциях, илион может быть загружен заранее с помощью файла конфигурации / файла метаданных или выборки из базы данных.

Вот аналогичный вопрос от другого члена сообщества, который, я думаю, может помочь вам понять, как связать вещи с https://discourse.aurelia.io/t/dynamicaly-load-routes/1906

...