2017-03-15 15 views
0

ユーザーがイオン2 /角度のユーザー入力などの要素を追加できるようにします。通常のJSを持つたとえば、私は、このコードを使用します。ionic2/angularJSで要素を動的に追加する方法

function addDestination(){ 
     var destDiv = document.getElementById('destPlaceholder'); 
     destDiv.innerHTML += '<ul class="rounded"><li><input type="text" class="node" placeholder="text" id="d" /></li></ul>'; 
    } 

は、どのように私はionic2/angularJSでこれをやって行くのでしょうか?

+0

を見て、アイテムを表すモデルを作成します。私はアレイが物事のコレクションをうまく表現すると思います。次に、 'ng-repeat'を使って入力リストをバインドします。ユーザーが別のラベルを表示するように指示したら、配列に項目を追加します。 –

答えて

1

Ionic2/Angular2では、ページ/コンポーネントのテンプレート(html)でngForディレクティブを使用して、配列内のすべての項目のHTML要素をレンダリングします。

あなたのタイプスクリプトでは、要素をこの配列にプッシュするだけで、ngForの余分な要素としてレンダリングされます。あなたのコードの場合

:あなたのテンプレートで

:あなたのtypescriptです内

<ul class="rounded"> 
    <li *ngFor="let item from items"> 
     <input type="text" class="node" placeholder="{{item.someattribute}}" id="{{item.id}}" /> 
    </li> 
</ul> 

public items:any[] = []; 

addDestination() { 
    this.items.push({id: 1, text: "the item's text"}); 
} 

は間違いなく、角度に関するほとんどのものと同じようにhttps://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html

+0

これは新しい入力ボックスの生成に成功しました。しかし、addDestination()関数はデータを格納しない入力ボックスしか生成しません。すべての入力ボックスが満たされたら、すべての入力を配列に格納する別個の関数が必要です。これを見ていただけますか? http://stackoverflow.com/questions/42808024/how-to-generate-fields-and-store-user-inputs-into-an-array-ionic2 – Dansmith12

+0

ああ、モデルバインディングの場合、これが最も簡単ですアプローチはずっと進んでいます。上記の例のデータ構造を実際の保存メソッドの入力として使用できませんか? – nickscheynen

関連する問題