Jęd*_*ski 5 html typescript ngfor angular
我只是尝试从typescript中的数组中删除对象,在角度2.4.0中,让我显示代码,它是我的html文件:
button type="submit" (click)="addAnotherLanguague()" >Add non native languague</button>
<li *ngFor="let languague of listOfLanguagues;">
<div class="form-item form-item--text">
<label class="label invisible">Years studied</label>
<input type="number" min="0" [(ngModel)]="languague.yearsStudied" name="years" placeholder="Years studied"/>
</div>
<button type="submit" (click)="removeLanguague(languague)" >Remove</button> // here you can see use of method
</li>
Run Code Online (Sandbox Code Playgroud)
还有component.ts
(...)
this.listOfLanguagues = new Array <LanguagueInformationData>();
}
addAnotherLanguague(){
this.listOfLanguagues.push(new LanguagueInformationData);
}
removeLanguague(languague){
this.listOfLanguagues.slice(this.listOfLanguagues.indexOf(languague), 1);
}
(...)
Run Code Online (Sandbox Code Playgroud)
添加效果很好,但我尝试删除所有内容,但仍然不知道如何转移该语言的参考,我不想使用.pop,因为我想要删除下面的按钮正好这个语言.你能帮助我吗?
[编辑]我再次遇到这个代码的问题,因为每当我尝试添加新的语言(推送)时,它会清除我在数组中存在的类的数据,你知道是什么原因引起的吗?
elz*_*zoy 17
<li *ngFor="let languague of listOfLanguagues; let i = index">
<button type="submit" (click)="removeLanguague(languague, i)" >Remove</button>
removeLanguague(languague, index){
this.listOfLanguagues.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)
Pie*_*Duc 10
你必须使用splice而不是slice
this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);
Run Code Online (Sandbox Code Playgroud)
slice返回数组的一部分,并splice从数组中删除元素,如有必要,在其位置插入新元素,返回已删除的元素
| 归档时间: |
|
| 查看次数: |
31747 次 |
| 最近记录: |