Как интегрировать встроенное редактирование Crafter CMS с Angular 2?

Я следовал руководству в этот блог успешно, и мне было интересно, могу ли я расширить его, включив встроенное редактирование Crafter CMS в проекте Angular 2. Моей первой попыткой было включить этот код <@studio.iceAttr iceGroup="author"/> в шаблон компонента angular следующим образом:

<h1 <@studio.iceAttr iceGroup="author"/>>${title}</h1>

но угловой компилятор настаивает на том, что это недопустимый HTML. Я понимаю, что под капотом Crafter studio преобразует приведенный выше код в настоящий HTML. Таким образом, я думаю, что вместо этого я должен добавить созданный html в шаблон углового компонента, но, похоже, есть и сгенерированное значение. Есть ли другие способы включить встроенное редактирование для приложений angular 2 внутри Crafter CMS?


person ayago    schedule 01.05.2017    source источник


Ответы (1)


Во-первых, ‹@studio.iceAttr iceGroup="author"/> — это тег на стороне сервера. Angular определенно не распознает его. Я думаю, вам нужно перенести это в простой API, который может возвращать встроенный контент CSS. Затем используйте ngStyle, чтобы привязать его к вашему Угловой шаблон.

Мое предположение кода в вашем коде component.ts:

cmsInlineCss: any;

ngOnInit(private http: Http) {
    this.http.get('api/cmsinlinecss/{para}').map(res => {
        var css = res.json();
        var processedCss = '';

        // process css to JSON object string

        this.cmsInlineCss = processedCss;
    });
}

В вашем шаблоне:

<h1 [ngStyle]="cmsInlineCss">${title}</h1>
person wannadream    schedule 01.05.2017
comment
Проблема здесь в том, что я не знаю фазы, на которой тег сервера преобразуется в эквивалентный тег html. Мне нужно внедрить не только встроенный css в html компонента, но и сгенерированный html. - person ayago; 01.05.2017
comment
Затем вы можете просто создать страницу, содержащую нужный вам тег сервера. Он вернет HTML и использует Angular http для его использования в виде строки, а затем проанализирует его в строку объекта JSON. - person wannadream; 01.05.2017