2017-06-06 5 views
4

Wie kann ich einen Dienst neu starten, ohne eine App neu zu laden?Wie kann ich Service in angular laden/neu starten?

Ich möchte nicht window.location.reload() verwenden.

+1

'window.location.reload()' Ihre Anwendung neu zu laden ... Sie können nicht ‚Neustart‘ Ihren Dienst ohne dies zu tun. .. –

+1

Was meinst du genau mit Neustart? Da es Singleton ist, passiert es nur einmal. – SaiUnique

Antwort

5

Sie könnten anstelle eines einfachen Dienstes eine Factory verwenden und eine reset-Methode erstellen, die sie in den "Ausgangszustand" versetzt.

Beispiel: Ihre Fabrik könnte in etwa so aussehen:

function MyFactory() { 

    // generate the initial structure of the service 
    let Factory = _getDefaultFactory(); 

    // expose the service properties and methods 
    return Factory; 

    /** 
    * Reset the factory back to its default state 
    */ 
    function reset() { 
     // generate the initial structure again 
     // and override the current structure of the service 
     Factory = _getDefaultFactory(); 
    } 

    /** 
    * Generate a default service structure 
    */ 
    function _getDefaultFactory() { 

     return { 

      // include the reset method so you can call it later 
      // e.g. MyFactory.reset(); 
      reset: reset 

      // include other factory properties and methods here 

     }; 

    } 

}