* ngfor Angular 2

时间:2016-11-03 13:09:54

标签: javascript html angular typescript

我想在* ngfor angular 2指令中连接多行中的字符串。

var contacts = [str1, str2, str3];

<div *ngFor="let c of contacts;let last = last; let str = str + c;">
    <div *ngIf="last">
         {{str}}
    </div>
</div>

我知道上面的代码无效。但是我想知道上面有什么可以实现的吗?

预期输出应为

STR1

STR2

STR3

注意:我希望使用角度ngfor在C#中实现类似下面的代码。

   var str = "";

   foreach(var item in items)
   {
     str = str + item.toString();
   }
   console.log(str);

3 个答案:

答案 0 :(得分:2)

<强>更新

*ngFor可用于根据以前的项目计算值。 最好的方法是在代码中准备列表,然后将*ngFor绑定到结果列表。

<强>原始

您不能对let使用任意表达式。只能分配*ngFor提供的上下文变量。

这样它应该产生你想要的结果

<div *ngFor="let c of contacts;let last = last">
    <div *ngIf="last">
         {{str}}{{c}}
    </div>
</div>

答案 1 :(得分:2)

也许像join这样简单就足够了:

未测试

var contacts = ['str1', 'str2', 'str3'];

<div [innerHtml]="contacts.join('')"></div>

答案 2 :(得分:1)

您可以一个接一个地输出两个字符串:

let contacts = [str1, str2, str3];

<div *ngFor="let c of contacts;let last = last;">
    <div *ngIf="last">
         {{str}}{{c}}
    </div>
</div>