首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Angular2 -获取json值以将值替换为html模板

Angular2 -获取json值以将值替换为html模板
EN

Stack Overflow用户
提问于 2016-12-01 04:31:20
回答 1查看 482关注 0票数 4

对于angular2来说,遇到了从Footer[]数组中提取值并显示它的问题。

footer.component.ts:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component } from '@angular/core';

export class Footer {
  id: number;
  value: string;
}

const FOOTER : Footer[] = [
    {id: 1, value: 'value_one'},
    {id: 2, value: 'value_two'}
  ];

@Component({
    selector: 'footer',
    template: `<html-outlet [html]="footerValue"></html-outlet>`,
})
export class FooterComponent{
    foot = FOOTER;

    footerValue = `<div class="menu" *ngFor="let f of foot" >
                <div class="footer"><b>{{f.value}} @2016</b></div>
            </div>`;
}

罪人:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template:`<html-outlet [html]="footerValue"></html-outlet>`,

从'footerValue‘获取模板并发送到另一个函数,用于动态编译和加载html。

如果它直接通过的话,所有操作都很好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template: `<div class="menu" *ngFor="let f of foot" >
                <div class="footer"><b>{{f.value}} @2016</b></div>
            </div>`,

有人能指导我如何将数组中的值附加到字符串变量'footerValue‘中,以遵循我最初的功能生成html。

原来的html模板是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`<div class="menu" *ngFor="let f of foot" >
                <div class="footer"><b>Example @2016</b></div>
            </div>`

其中的“示例”应该由数组中的值替换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 04:35:42

我想问题是你的html-outlet试图“编译”你的html片段,但不知道什么是foot

所以,像这样准备html片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
constructor() {
   this.footerValue = this.prepareFooterHtml();
}

prepareFooterHtml(): string {
   let footer = '<div class="menu">';
   this.foot.forEach(f => {
      footer += `<div class="footer"><b>${f.value} @2016</b></div>`;
   });
   footer += '</div>';
   return footer;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40910764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文