मेरे पास JHipster 5.5.0 के साथ उत्पन्न एक परियोजना है और मेरे पास 2 संस्थाएं हैं: माता-पिता और बच्चे।

जब मैं माता-पिता का विवरण देखता हूं तो मैं बच्चों को सूचीबद्ध करता हूं। जब मैं किसी बच्चे को हटाना चाहता हूं, तो मैं बच्चे के मोडल का उपयोग करता हूं और यह वैसे ही काम करता है जैसे इसे होना चाहिए।

मेरी समस्या इकाई को हटाने के बाद सूची को अद्यतन नहीं किया जा रहा है और मुझे नहीं पता कि कहां देखना है। मैंने स्थिर विधियों का उपयोग करने की कोशिश की ताकि मैं सूची को पुनः लोड कर सकूं लेकिन मैं ऐसा करने में असमर्थ हूं। किसी भी तरह की सहायता को आभार समझेंगे।

बच्चे का कोणीय कोड:

import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';

import { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { JhiEventManager } from 'ng-jhipster';

import { IChild } from 'app/shared/model/child.model';
import { ChildService } from './Child.service';

@Component({
    selector: 'jhi-child-delete-dialog',
    templateUrl: './child-delete-dialog.component.html'
})
export class ChildDeleteDialogComponent {
    child: IChild;

    constructor(
        private childService: ChildService,
        public activeModal: NgbActiveModal,
        private eventManager: JhiEventManager
    ) {}

    clear() {
        this.activeModal.dismiss('cancel');
    }

    confirmDelete(id: number) {
        this.childService.delete(id).subscribe(response => {
            this.eventManager.broadcast({
                name: 'childtModification',
                content: 'Deleted a child'
            });
            this.activeModal.dismiss(true);
        });
    }
}

@Component({
    selector: 'jhi-child-delete-popup',
    template: ''
})
export class ChildDeletePopupComponent implements OnInit, OnDestroy {
    private ngbModalRef: NgbModalRef;

    constructor(private activatedRoute: ActivatedRoute, private router: Router, private modalService: NgbModal) {}

    ngOnInit() {
        this.activatedRoute.data.subscribe(({ child }) => {
            setTimeout(() => {
                this.ngbModalRef = this.modalService.open(ChildDeleteDialogComponent as Component, {
                    size: 'lg',
                    backdrop: 'static'
                });
                this.ngbModalRef.componentInstance.child = child;
                this.ngbModalRef.result.then(
                    result => {
                        this.router.navigate([{ outlets: { popup: null } }], { replaceUrl: true, queryParamsHandling: 'merge' });
                        this.ngbModalRef = null;
                    },
                    reason => {
                        this.router.navigate([{ outlets: { popup: null } }], { replaceUrl: true, queryParamsHandling: 'merge' });
                        this.ngbModalRef = null;
                    }
                );
            }, 0);
        });
    }

    ngOnDestroy() {
        this.ngbModalRef = null;
    }
}

मूल इकाई में, मेरे पास इस तरह का एक बटन है:

<button type="submit" [routerLink]="['/', { outlets: { popup: 'child/'+ child.id + '/delete'} }]"
replaceUrl="true"
queryParamsHandling="merge"
class="btn btn-danger btn-sm">
<fa-icon [icon]="'times'"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
</button>

मोडल न तो घटक जो बच्चे को हटाता है उसे संशोधित नहीं किया गया है।

0
Alejandro 18 अक्टूबर 2018, 23:00

1 उत्तर

सबसे बढ़िया उत्तर

एक ही उत्तर की तलाश करने वालों के लिए:

बच्चे को हटाते समय, घटक इस तरह की घटना को प्रसारित करता है:

this.eventManager.broadcast({
    name: 'childListModification',
    content: 'Deleted a Child'
});

मुझे केवल इस तरह की घटना के लिए (मूल घटक में) सदस्यता लेनी थी:

registerChangeInChildren() {
    this.eventSubscriber = this.eventManager.subscribe('childListModification', response => {
        this.getAll();
    });
}

और this.registerChangeInChildren() को ngOnInit() में कॉल करें और सब कुछ अपेक्षित के रूप में काम करता है।

0
Alejandro 20 अक्टूबर 2018, 02:02