Итак, я искал, как загрузить CSS и HTML с сервера.
Чего я хочу добиться - это запросить отображение определенного шаблона, который отправляет HTML и CSS на веб-сайт и загружает его вместе с некоторыми пользовательскими стилями, такими как цвет
. До сих пор я мог вводить HTML, используя:
<div [innerHTML]="template | sanitizeHtml"></div>
и
import { Pipe, PipeTransform, SecurityContext } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'sanitizeHtml'
})
export class SanitizeHtmlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) { }
transform(value: any): any {
return this.sanitizer.bypassSecurityTrustHtml(value);
}
}
Что я видел в разных постах и блогах (спасибо вам за это).
HTML Я строил работы как шарм:
this.template = "<div class='template' style='width: 1080px; height: 1920px; background-color: #212121;'><div class='clr-row' style='padding:45px 0px 10px 25px; position: relative; width: inherit;'><div class='clr-col-5'><div style='width: 230px; height: 60px; background-image: url(*LINK_TO_IMAGE*); background-repeat: no-repeat; float: left;'></div></div></div></div>"
Этот HTML является частью полного шаблона. Итак, я хотел бы использовать стили с помощью переменных.
Итак, я попытался создать объект стиля:
public style: {};
public template: string;
ngOnInit(){
this.style = {
template: {
"color": "#D8B088",
}
}
this.template = "<div [ngStyle]='style.template' class='template' style='width: 1080px; height: 1920px; background-color: #212121;'><div class='clr-row' style='padding:45px 0px 10px 25px; position: relative; width: inherit;'><div class='clr-col-5'><div style='width: 230px; height: 60px; background-image: url(*LINK_TO_IMAGE*); background-repeat: no-repeat; float: left;'></div></div></div></div>"
}
Я добавил объект стиля в шаблон с помощью [ngStyle] = 'style.template', по какой-то причине стиль не был загружен, поэтому я попытался использовать вместо него camelCasing, но все равно безуспешно.
Так кто-то знает, как заставить CSS работать в этом случае и в конечном итоге использовать пользовательские стили?
Заранее спасибо.
Редактировать 1:
Я также включил Sanitize труба в app.module.ts:
@NgModule({
declarations: [
...,
SanitizeHtmlPipe
],
...
});
(для тех, кому было интересно)
Edit 2:
Так что я работаю над тем, чего я хочу иметь с этими шаблонами:
Пользователь может зарегистрировать несколько устройств там, где они хотят отображать заказы из офиса 365. Пользователь может настроить шаблоны двумя способами, но это не имеет значения. Когда пользователь хочет отобразить шаблон для определенного устройства, он go отправляет / device /: deviceid / template /: templateid. Таким образом, компонент будет загружен в шаблон этого устройства. Итак, сначала мы загружаем в настройках устройства, которые содержат пользовательские стили для шаблона. После этого мы загружаем данные из office365, которые должны отображаться в шаблоне, и, наконец, загружаем в шаблон стили шаблона. Таким образом, будет 3 запроса к серверу. DeviceSettings - Data Office365 - Шаблон
До сих пор я был в состоянии загрузить данные и поместить их в шаблон, но шаблон был доступен локально, а не с сервера. Причина, по которой я хочу, чтобы шаблоны запрашивались с сервера, заключается в том, что будет административный портал, где эти шаблоны будут создаваться и управляться. Эти шаблоны будут иметь имя, HTML и CSS.