@lazalu68
Suspended ))

Как обработать XML в качестве шаблона?

Суть такова: на сервере хранятся XML-структуры, приблизительно такие:
example.xml
<Container Id="accordion">
	<VerticalLayout Margin="true" Spacing="true" PanelCaption="Основные атрибуты">
		<HorizontalLayout Margin="false" Spacing="true">
			Some content
		</HorizontalLayout>
	</VerticalLayout>
</Container>

Эти структурки надо будет скачать с сервера и использовать в качестве шаблона, то есть разместить в теле какого-нибудь топового компонента и рассчитывать на то, что будут корректно инициализированы используемые компоненты (в данном случае это `VerticalLayout`, `HorizontalLayout` и `Container`). Говоря "корректно" я имею в виду, что эти компоненты будут инициализированы абсолютно так же, как если бы эта структура была статическим шаблоном в каком-нибудь компоненте.

Сначала мне показалось, что это о Dynamic Component Loading, но чо-то в статье не нашёл инфы по теме. Будет вообще шикарно если подскажете как в терминологии ангуляра называется подобная гимнастика с шаблонами. Заранее большое спасибо!
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
GennadyS
@GennadyS
Программист, философ
Как следует из комментариев, задача отображать множественные формы. Источник форм не столько важен: создают их вручную, с инструментарием или они генерируются автоматически. Решить динамической загрузкой в Angular будет сложно (а тем более связать в MV*, обрабатывая в контроллере/модели компонента), следовательно, напрашивается другой подход к визуализации форм средствами статически-собранного приложения. Попробуйте решить это посредством мета-данных форм. Пусть форма будет представлена описанием полей, скажем, JSON или XML, и единый (и сложный) шаблон Angular будет заниматься генерацией, грубо говоря, что-то вроде этого:
formElementsList = [ { type: "text", label: "Поле ввода", value: null } ];

<div *ngFor="let element of formElementsList">
  <div *ngIf="element.type == 'text'">
    <label>{{ element.label }}:
      <input [(ngModel)]="element.value" />
    </label>
  </div>
</div>

Ограничений у этого подхода нет, можно создать форму любой сложности, с иерархией и вложенностью.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы