2017-07-31 72 views
0

我正在嘗試創建一個動態數量的文本輸入,並將每個值綁定到對象a中的字符串數組中的值。這似乎會產生奇怪的問題。我在文本框中輸入的每一個字母都會取消選擇文本框,並且在向列表中添加新項目時發生不可預知的事情。任何想法是怎麼回事?Angular 2 - 每次輸入字母時都會取消選擇

模板:

<div *ngFor="let listItem of a.list; let i = index;"> 
    <input type="text" name="sourceText" id="sourceText" class="form-control" 
     placeholder="Enter item" required [(ngModel)]="a.list[i]"> 
</div> 
<a (click)="a.list.push('')">Add new item...</a> 

打字稿:

export class MyClass { 
    a: { list: string[] }; 

    constructor() { 
     this.reset(); 
    } 

    reset() { 
     this.a = {list: ['']}; 
    } 
} 

回答

0

那是因爲你給了相同的ID爲所有元素id="sourceText"。嘗試附加索引編號id="source text"+i然後看,它應該工作。 Id對於所有元素都應該是唯一的。

0

試試這個 -

<div *ngFor="let listItem of a.list; let i = index;"> 
    <input type="text" name="sourceText"+i id="sourceText"+i class="form-control" 
    placeholder="Enter item" required [(ngModel)]="a.list[i]"> 
</div> 

的問題是,它包含了相同的名稱(可選)和IDS(應該已經爲每一個資源標籤是唯一的)的事實。

因此,請更改您的ID標記「sourceText」+ i和上面的名稱標記,看看它是否有效。

相關問題