2017-06-12 36 views
1

this methodを使用して動的ngModel変数を作成することができました。これは、リストに基づいて多数のテキスト入力を生成してから、それらにngModel変数を設定しようとしているため、素晴らしいことです。私が実行している問題は、テキストボックスに初期値を代入してこの値を(ngModelの値と同様に)表示するようにしたいのですが、明らかにユーザーがボックスに入力してngModel変数。動的に生成されたngModelの初期値を割り当てます。角度(2/4)

私はこれを行う方法はありません。入力値を設定すると、単にクリアされます。後で変数を参照できるようにする必要があるので、2ウェイデータバインディング({{}}メソッド)ではなくngModelで行う必要もあります。

以下は動作させるための私の試みです。 "items"は文字列値のリストであるとみなすことができます。

<ul> 
<li *ngFor = "let item of items"> 
    <input type = "text" [(ngModel)] = "input[item]" value = '{{item}}'> 
</li> 
</ul> 

私はまた、一般的には角度やウェブdevのに非常に新しいですので、私はちょうど非常に何かを明らかに不足していることができ、それは私が謝罪するケースだ場合。いずれにせよ私は本当に助けに感謝します。

答えて

1

コントローラでこれを行う必要があります。

@Component({ 
    // component configuration 
}) 
class MyController implements OnInit { 

    public input: Object = { 
     // your data 
    }; 

    public items: Array<Object> = [ 
     // your list of items 
    ]; 

    ngOnInit() { 

     this.items.forEach(item => { 
      input[item] = item; 
     }); 

    } 

} 
+0

私はそれに感謝し、同様のやり方で考えていましたが、それはテンプレートから可能であるかどうか不思議でした。しかし、これは良い解決策として動作するはずですので、ありがとう! – procinct

+1

Angular 2+では、開発者にロジックをテンプレートからコントローラに移すように "強制"しようとしています。したがって、 '' ngInit''ディレクティブを削除すると思います。 –

+0

ああ、興味深いことに、私はそれが彼らが意図していた方向性であることを知らなかった。あなたのお手伝いをしてくれてありがとう! – procinct

関連する問題