小编ben*_*h80的帖子

重置Angular 2应用程序

我的Angular 2应用程序具有注销功能.如果我们可以(即document.location.href = '/';),我们希望避免执行页面重新加载,但是注销过程需要重置应用程序,以便当另一个用户登录时,前一个会话中没有剩余数据.

这是我们的main.ts文件:

import 'es6-shim/es6-shim';
import './polyfills';    
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { ComponentRef, enableProdMode } from '@angular/core';
import { environment } from '@environment';
import { AppModule } from './app/app.module';

if (environment.production === true) {
    enableProdMode();
}

const init = () => {
  platformBrowserDynamic().bootstrapModule(AppModule)
  .then(() => (<any>window).appBootstrap && (<any>window).appBootstrap())
  .catch(err => console.error(err));
};

init();

platformBrowserDynamic().onDestroy(() => {
  init();
});
Run Code Online (Sandbox Code Playgroud)

您可以看到我在销毁应用程序时尝试调用init()方法.我们的user-authentication.service中的logout方法启动destroy:

logout() {   
  this.destroyAuthToken();  
  this.setLoggedIn(false);
  this.navigateToLogin()
  .then(() => {
    platformBrowserDynamic().destroy();
  });
}
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误:

选择器"app-root"与任何元素都不匹配

任何帮助赞赏.

angular2-services angular

8
推荐指数
2
解决办法
4120
查看次数

标签 统计

angular ×1

angular2-services ×1