2017-06-12 95 views
1

我已經計算出我可以使用this method創建動態ngModel變量。這很好,因爲我試圖根據列表生成一堆文本輸入,然後在其上放置一個ngModel變量。我遇到的問題是我想爲文本框分配一個初始值,以便顯示該值(以及作爲ngModel的值),然後顯然用戶可以在該框中鍵入,更改該值ngModel變量。爲動態生成的ngModel Angular指定初始值(2/4)

我無法解決這個問題。如果我爲輸入設置了一個值,它就會被清除。它還需要使用ngModel而不是2路數據綁定({{}}方法),因爲我需要能夠稍後引用該變量。

下面是我試圖讓它工作。您可以假設「項目」是一個字符串值的列表。

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

我也很新的總體角度和web開發,所以我可能只是失去了一些東西很明顯,如果這是我道歉的情況。無論我真的很感激任何幫助。

回答

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

相關問題