我如何以角度重新加载/重新启动服务?

时间:2017-06-06 07:14:27

标签: angularjs angular-services

如何在不重新加载应用的情况下重新启动服务?

我不想使用window.location.reload()

1 个答案:

答案 0 :(得分:5)

您可以使用工厂而不是简单服务,并在其上创建一个reset方法,将其设置为“初始状态”。

例如,您的工厂可能看起来像这样:

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

        };

    }

}