declare var alertify:any;
export class ExamplComponent implements OnInit {
itemList = []
deleteItem(idx) {
alertify.confirm('Are you sure delete this record.', function() {
this.itemList.slice(idx,1);
})
}
}
html页面
< div *ngFor="let item of itemList;let indx = index" style="text-align: center">
<button class="text-btn text-danger" (click)="deleteItem(indx)" ><i class="fa fa-trash"></i></button>
</div>
源库:https://alertifyjs.com/confirm.html
错误消息
ERROR TypeError: Cannot read property 'itemList' of undefined
答案 0 :(得分:1)
使用fat arrow =>
代替function
deleteItem(idx) {
alertify.confirm('Are you sure delete this record.', ()=> {
this.itemList.slice(idx,1);
})
}
答案 1 :(得分:1)
问题出在作为参数传递给alertify.confirm()
的函数上。在这种情况下,当您使用function()
声明函数时,它具有自己的this
;因此,在编写this.itemList
时,您指向的是undefined
,因为它在您的函数中不存在。
尝试改用箭头功能(() => {}
),它们从当前作用域继承this
,因此可以安全地在回调函数中使用。
deleteItem(idx) {
alertify.confirm('Are you sure delete this record.', () => {
this.itemList.slice(idx, 1)
})
}