如何通过Angular 2中的字符串传递模型

时间:2017-01-01 22:27:15

标签: javascript angular typescript

场景(DOM):

<div *ngFor="let one of many">
    <span [innerHtml]="one"></span>
</div>

场景(控制器):

let many = [];
let timer = 60;
setInterval(() => timer--, 1000);
many.push("this is a selection WITH a {{timer}}");
many.push("this is a selection WITHOUT a timer");

所以基本上是一个阵列&#34;很多&#34;它可以将许多字符串动态地推入其中并且还将一些字符串传递到&#34;很多&#34;有倒计时,有些则没有倒计时。有没有办法通过字符串将模型传递到DOM,如上所示并更新计时器?如果它的可行性如何才能实现。

我真的希望这不是其中一个&#34;陷阱&#34;那太明显了。

格拉西亚斯

1 个答案:

答案 0 :(得分:3)

PLUNKER

这是一种'hacky'解决方案,但它可以工作,您不需要创建额外的组件。

首先,将模板更改为:

<div *ngFor="let one of many">
    {{one.replace('[timer]', timer)}}
</div>

其次,将timermany声明为类变量:

export class YourComponent {
    timer:number=60;
    many:string[];

    (...)
}

最后,在向many添加新行时,只要您想包含timer,请使用[timer]代替{{timer}}

您可以将[timer]更改为您想要的任何内容。