1

我已经成功地遵循了这个博客中的教程,并且想知道我是否可以通过在 Angular 2 项目中启用 Crafter CMS 的内联编辑来进一步扩展它。我的第一次尝试是将此代码包含<@studio.iceAttr iceGroup="author"/>在 Angular 组件的模板中,如下所示:

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

但角度编译器坚持认为它是无效的 HTML。我知道在引擎盖下 Crafter 工作室会将上述代码转换为实际的 HTML。因此,我认为我应该将生成的 html 添加到 angular 组件的模板中,但似乎也有生成的值。有没有其他方法可以在 Crafter CMS 中启用 Angular 2 应用程序的内联编辑?

4

1 回答 1

0

首先, <@studio.iceAttr iceGroup="author"/> 是服务器端标签。Angular 肯定不会识别它。我认为您需要将其转移到一个可以返回内联 CSS 内容的简单 API 中。然后使用ngStyle将其绑定到您的 Angular 模板中。

我的代码假设,在您的代码 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>
于 2017-05-01T07:53:29.720 回答