2016-11-03 12 views
2

* ngfor angular 2命令の中で複数の文字列を結合したいと思います。* ngfor角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

注意する必要があります:私はC#でコードが角ngforを用いて以下のようなものを達成したいです。

var str = ""; 

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

答えて

2

更新

*ngForは、前の項目に応じて値を計算するために使用することができます。 コードでリストを準備し、その結果のリストに*ngForをバインドするのが最善の方法です。

あなたはletで任意の式を使用することはできません。 *ngForによって提供されるコンテキスト変数のみを割り当てることができます。

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

私は、最後の反復時に出力を表示したいだけです。出力は複数行の連結文字列でなければなりません。 – chenk

+0

私のコードはあなたが望むことを期待していますか?それはありませんか? –

+0

番号{{str}}はここでは定義されていません。 – chenk

1

あなたは単に出力二つの文字列次々ことができ、それはあなたが望む結果を生成する必要があり、この方法:

let contacts = [str1, str2, str3]; 

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

はおそらくjoinのような単純なもので十分でしょう:

未テスト

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

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

これは動作しています。 https://plnkr.co/edit/W5wos2ApGA1P4nTy90f6?p=preview – Bazinga