2016-11-25 3 views
1

gibt es einen weg in angular 2 um eine komponente zu zerstören, die automatisch in einem router-outet erstellt wurde?angular 2 outlet-content zerstören und neu laden

Ich möchte es zerstören, dass es eine neue erstellen wird, wenn ich wieder zu dieser Steckdose navigiere (oder gibt es endlich eine Steckdose-Reload verfügbar?).

Antwort

0

Da in der aktuellen Version angular 2 nichts enthalten ist, habe ich einen Workaround.

In meinem Fall möchte ich die Outlet-Komponente zerstören, wenn mein modales Fenster schließt.

$('#mymodal_window').on("hide.bs.modal",()=>{ 
    //destroy manually 
    for(var o of this.route.parent.children){ 

     if(o.outlet=="myoutletname") 
     { 
      var s:any = o.snapshot; 
      s._routeConfig = null; 
     } 
    } 
}); 

intern eckig überprüft, ob die Snapshots (es vergleicht nur die _routeConfig) gleich sind und die Komponente wiederverwenden wird. In meinem Workaround lösche ich einfach _routeConfig beim Schließen des Fensters und beim nächsten Mal wird es eine neue Instanz der Komponente erstellen.

Verwandte Themen