primeng确认服务

时间:2017-08-17 20:30:43

标签: events primeng

我有一个使用确认服务的组件,如下

<template let-parent pTemplate="rowexpansion">
        <div class="outer" *ngIf="parent">
            <div class="inner">
                <account-list [parentId]="parent.parent_id"> </account-list>

            </div>
        </div>
    </template> 

此组件可以单独使用。将此组件用作子组件时,将触发两次确认服务。即当我想删除一个对象时,我需要多次点击“接受”或“拒绝”按钮。

我在数据表组件的rowexpantion中使用此组件,如下所示:

let group = DispatchGroup()

    if post.imageUrl1 != nil {
        group.enter()
        self.carImages.append(post.imageUrl1!)
        DispatchQueue.main.async {
            let storageRef = Storage.storage().reference(forURL: post.imageUrl1!)
            storageRef.getData(maxSize: 2 * 1024 * 1024) { (data, error) -> Void in
                let pic = UIImage(data: data!)
                self.cars.append(pic!)
            }
        }
         group.leave()
    }
    if post.imageUrl2 != nil {
        group.enter()
        self.carImages.append(post.imageUrl2!)
        DispatchQueue.main.async {
            let storageRef = Storage.storage().reference(forURL: post.imageUrl2!)
            storageRef.getData(maxSize: 2 * 1024 * 1024) { (data, error) -> Void in
                let pic = UIImage(data: data!)
                self.cars.append(pic!)
            }
        }
         group.leave()
    }
    if post.imageUrl3 != nil {
        group.enter()
        self.carImages.append(post.imageUrl3!)
        DispatchQueue.main.async {
            let storageRef = Storage.storage().reference(forURL: post.imageUrl3!)
            storageRef.getData(maxSize: 2 * 1024 * 1024) { (data, error) -> Void in
                let pic = UIImage(data: data!)
                self.cars.append(pic!)
            }
        }
         group.leave()
    }

    group.notify(queue: .main) {
        print("Tony: Got the pics in order")
    }

在此示例中,我的组件用于显示父组件的Datatable的帐户详细信息,每次展开父表的一行时,我需要再次单击“接受”或“拒绝”按钮。 此致

1 个答案:

答案 0 :(得分:8)

基于primeng文档

  

key:用于匹配确认对象的键的可选键,需要使用   当组件树有多个确认对话框时。

由于我使用的是嵌套组件树,我需要在html模板中为每个确认服务添加一个键,如下所示

<p-confirmDialog key="account"></p-confirmDialog>

在ts代码中我还需要指定密钥如下:

 this.confirmationService.confirm({
                header: 'Delete Confirmation',
                key:'account';