Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 2:在ngFor循环中保存变量以便在循环外使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个由for循环@L_616_2@的变种列表.该列表中的每个项目旁边都有一个按钮,以便可以删除特定的列表项.每个按钮都会打开一个模态,您可以在其中确认是否要删除该变种.我不想在页面上有无限量的模态,所以我将模态放在for循环之外,并希望将id从初始删除按钮传递给模态,以便模态知道要删除的变体.我认为为了做到这一点,我需要创建一个变量.我通过在初始删除按钮中放置#varietyTodelete =“{{variety.PerProjectVarietyID}}”来尝试这个,然后在模态中的最终删除按钮内,我添加了这个:( click)=“removeVariety(#varietyToDelete)

为了更好地查看我的代码,这里是我拥有的for循环的相关部分:

<div *ngFor="let variety of varieties; let i=index">
    ...
    <div class="varietyName">            
            <a href="#deleteVarietySelling" #varietyTodelete="{{variety.PerProjectVarietyID}}" data-toggle="modal">
                <i class="fa fa-minus"></i>
            </a>
        </div>
    </div>
</div>

这是我的模态,我想将该变量传递给:

<div class="modal fade alert" id="deleteVarietySelling" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-body">
                <a href="#" class="close-modal" data-dismiss="modal">&times;</a>
                <p class="confirmation-message">
                    Are you sure you want to delete this variety?
                </p>
                <div class="row">
                    <div class="removeCancel">
                        <a href="#" class="cancel-button" data-dismiss="modal">Cancel</a>
                        <a href="#" class="remove-button" (click)="removeVariety(#varietyToDelete)">Remove</a> 
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

当我尝试这个时,我收到以下错误

有没有办法得到我想要做的工作?我的语法是关闭的,还是我需要完全采用不同的方法

解决方法

您可以在组件中使用ViewChild来读取组件中的模态:

import { ViewChild } from '@angular/core';

@ViewChild('mymodal')
mymodal: any;

你的模态应该如下所示:

<div bsModal #mymodal="bs-modal" class="modal fade alert" id="deleteVarietySelling" tabindex="-1">
    ...
</div>

然后,在组件中,您可以创建一个方法,在单击时显示模态并传递您单击的值,以便将其存储在变量中,然后将该变量传递给removeVariety():

varietyToRemove: any;

public showModal(variety: any): void {
    this.childModal.show();
    this.varietyToRemove = variety;
}

然后使用showModal(variety:any)在for循环中显示单击事件上的模态:(不确定是否可以将click事件添加标记,您可能必须将其更改为按钮或其他内容)

<a href="#deleteVarietySelling" (click)="showModal(variety)">
    <i class="fa fa-minus"></i>
</a>

最后,您只需在删除按钮的click事件上调用removeVariety(varietyToRemovE)

<a href="#" class="remove-button" (click)="removeVariety(varietyToRemovE)">Remove</a>

大佬总结

以上是大佬教程为你收集整理的Angular 2:在ngFor循环中保存变量以便在循环外使用全部内容,希望文章能够帮你解决Angular 2:在ngFor循环中保存变量以便在循环外使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。