【问题标题】:How to refresh/reload angular 2 application without using window.location.reload()?如何在不使用 window.location.reload() 的情况下刷新/重新加载 Angular 2 应用程序?
【发布时间】:2019-03-14 23:25:46
【问题描述】:

是否可以在不使用 window.location.reload() 的情况下刷新/重新加载 Angular 应用程序?

  • 我想在注销登录后执行此操作。
  • 我只是想加载初始根组件,通常在应用程序引导时加载。初始根组件将负责应用程序所需的准备工作。 nav.setRoot 不起作用,因为该应用程序在某些方面表现得有些奇怪。

window.location.reload() 可以工作,但是需要花费很多时间。

【问题讨论】:

  • 不建议在 Angular 应用中使用,因为它们是 SPA,因此强行重新加载网站是违反规则的。

标签: javascript angular


【解决方案1】:

我认为这不是进行初始化的正确方法。我可以向您推荐什么

  1. 创建用于放置初始化代码的服务。
  2. 然后在登录/注销时向用户发送正确的路由并使用角度route resolve 概念进行初始化。
  3. 处理应用程序初始化的最佳位置是通过provide: APP_INITIALIZER

如果你分享你的代码 sn-p 那么我会帮助我想象你真正想要做什么以及你在哪里以及为什么会遇到问题

【讨论】:

    【解决方案2】:

    window.location.reload() 不会重新加载“应用程序”,只是重新加载 HTML。

    Angular 的重点是数据绑定。要更改用户在屏幕上看到的内容,您应该更改 $scope(或 $rootscope)变量。

    【讨论】:

    • 这是一个角度问题,尽管最初的标签是错误的。
    • ...doesn't reload "the app", just the HTML. 你的意思是只有组件而不是整个应用程序,对吗?你确定吗?
    • 我的意思是它是纯 JavaScript,它操纵 DOM。 DOM 不是应用程序。
    猜你喜欢
    • 1970-01-01
    • 2014-07-21
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多