Angular 5 服务中的窗口对象

2024-06-26

我有 Angular 项目,具体来说是用户面板。所有页面都是 php 的,只有面板是 Angular 的。如何使用window服务中的对象?

我想用window.location与 HTML 中的 href="/" 完全相同的操作,它使我返回到主站点的角度项目(面板)之外。为什么?当我尝试获取用户时,它返回状态,例如 401、404 用户无法访问面板,并且必须导航到主站点。

我尝试了几种路线选择navigate or navigateByURl,但地址总是在 Angular 中设置为 baseHref,所以我无法出去。我尝试通过{provide: Window, useValue: window }在提供程序中,将窗口注入到服务中的构造函数中,这在我的本地主机上工作,但是当我运行时ng build在 cli 中它向 mi 发送错误:

错误中的错误:无法解析 UserService 中的所有参数 ../my-app/src/app/user.service.ts: (?, [对象对象], [对象 对象]、[对象对象]、[对象对象])。

请问有人吗?

在应用程序模块中:

providers: [UserService, DatePipe, {provide: Window, useValue: window }],

在用户服务中:

constructor(private window: Window, private location: Location, private HttpClient: HttpClient, private route: ActivatedRoute, private router: Router){};

并在 UserService 中使用函数来导航状态:

if(data == 403) {
  this.setError('You must log in', 'danger');

  this.window.location.assign("/");
  ...
}

ERROR in Error: Can't resolve all parameters for UserService in ../my-
app/src/app/user.service.ts: (?, [object Object], [object Object], 
[object Object], [object Object]).

发生此错误是因为 Angular 试图将 Window 和 Location 注入到您的服务中,但找不到相应的类@Injectable装饰师。这@Injectable装饰器表示 Angular DI 系统用于创建该类的一个或多个实例。还window是一个全局可访问的对象。

所以而不是this.window.location.assign("/");你可以用window.location.assign("/");

或者以下任何一个:

  1. window.location.href = 'http://...';
  2. window.location = 'http://...';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 5 服务中的窗口对象 的相关文章

随机推荐

  • Angular ui 路由器状态 - 具有相同模板和控制器的多个状态

    我使用 Angular ui 路由器状态提供程序在 AngularJS 应用程序中定义了如下状态 而且 我想用相同的配置定义多个状态 即 使用相同的模板和控制器 stateProvider state parent templateUrl
  • Openlayers 3 中心地图

    我在唱歌开放层 3 http openlayers org en v3 0 0 apidoc 显示地图 我想使用经纬度坐标将地图居中 我正在使用快速入门代码 http openlayers org en v3 1 1 doc quickst
  • Web API 2 c# 中的 Google reCaptcha

    我有一个 ASP NET Web API 2 项目 我正在尝试从表单中读取 Google Captcha 我尝试了这段代码 public string Post FoundingRequest model var response Requ
  • 如何使用 xpath 提取
    标记之间的文本

    以下是我的应用程序中按钮的代码 span class ms cui ctl largelabel New br Map span 我想单击该按钮并使用 Selenium Webdriver 我尝试了多种组合 但它对我不起作用 以下是我尝试过
  • 一键安装 Safari 扩展

    当用户下载插件 Firefox 例如 时 下载完成后插件安装就会开始 在 Safari 中是否有可能实现同样的目标 即用户单击链接下载插件 下载后会自动开始安装 我认为这不可能在任何其他域上执行 除了extensions apple com
  • Cmake:在自定义目录中查找 protobuf 包

    我有 cmake 3 10 x 并下载了当前的 protobuf 源 3 6 1 使用 cmake 我创建了 bin 目录 PROTOBUF SOURCE DIR bin 在其中成功构建了该库 下一步我想在我的基于 cmake 的项目中使用
  • 在 Jenkins 服务器上找不到 tcpSlaveAgentListener

    我正在尝试从从机连接到 Jenkins 主实例 从连接的角度来看 一切看起来都很好 我可以在 Jenkins 的 配置全局安全性 中设置选定的 JNLP 代理的 TCP 端口 从那里启动从节点 curl http myjenkinsurl
  • 在方法签名中使用 new 关键字通常只是为了可读性吗?

    我读过关于new关键词在方法签名中并看到了下面的例子this https stackoverflow com questions 1014295 c sharp new keyword in method signature发帖了 但还是不
  • 连接到 Amazon EC2 实例时 SSH 挂起

    我可以使用以下命令连接到 ec2 实例 但今天我无法使用它进行连接 ssh i abcKey pem email protected cdn cgi l email protection v 以下是详细内容 我已经在 EC2 中打开了 SS
  • Java 中使用 PBKDF2 进行密码验证

    我正在用 Java 进行基于密码的文件加密 我使用 AES 作为底层加密算法PBKDF2WithHmacSHA1使用以下代码从盐和密码组合中派生密钥 我从本网站上的另一位慷慨的海报获得 SecretKeyFactory f SecretKe
  • 聚类算法采用哪种编程结构

    我正在尝试实现以下 分裂 聚类算法 下面是该算法的简短形式 完整的描述可用here https dl dropboxusercontent com u 540963 diana pdf 从样本 x i 1 n 开始 将其视为由 n 个数据点
  • 如何在 Android Q 上将照片广播到图库

    我使用这些代码拍照并将照片广播到画廊 它有效 我发现我的广播功能使用MediaStore Images ImageColumns DATA and Intent ACTION MEDIA SCANNER SCAN FILE 并且这些已被弃用
  • python 日志记录:当级别 >= ERROR 时,通过电子邮件将整个日志文件作为附件发送

    我的日志系统有一些处理程序 日志文件 INFO 电子邮件处理程序 gt ERROR 和用于可选调试的流处理程序 当发生错误 异常 关键消息时 我希望电子邮件处理程序将日志文件从文件处理程序附加到错误电子邮件 import logging d
  • Java中C是A的子类时“C c = new C()”和“A c = new C()”的区别

    假设我们有类 A 作为父类 以及扩展它的类 C class A void m System out println A m class C extends A Override void m System out println C m 和
  • 我如何在 WPF 中模仿这种行为?

    我对 WPF 和 C 开发相当陌生 我正在制作这个应用程序 我不知道是否有人熟悉 VOIP App Discord 但他们有一个我非常喜欢的特定行为 并且想尝试使用 WPF 创建类似的风格 当您在 Discord 上添加服务器时 单击一个按
  • 重定向后丢失会话变量

    用户填写用户名和密码 如果正确 页面会加载一些信息 例如user id到会话变量 该脚本制作了一个header Location 重定向 不知何故 下一页无法识别会话 怎么会 重定向到同一个域 并且所有页面都有session start 我
  • 将 div 移动到 dom 中的其他位置

    以下代码被动态插入到 DOM 中 但是 我想将 div example 从原来的位置移动并将其添加到 wrapper 前面 我如何使用 jQuery 来实现这一目标 div div div div div div div div I tri
  • ruby require 问题(与 $LOAD_PATH 有关)

    我正在尝试使用我刚刚安装的 gem 通过sudo gem install excelsior 像这样 需要 红宝石 要求 精益求精 这在 irb 中工作得很好 但是当我将完全相同的代码粘贴到 rb 文件中并尝试使用 ruby 运行它时 我得
  • 实体框架 4 将订单链接到拥有 10,000 个订单的客户非常慢

    这个把我难住了 我有一个客户和订单实体 客户可以有多个订单 当我创建新订单并设置 Customer 属性 Order Customer customer 时 如果客户有 10 000 个订单 则会有很长的延迟 20 秒 在添加这个新订单之前
  • Angular 5 服务中的窗口对象

    我有 Angular 项目 具体来说是用户面板 所有页面都是 php 的 只有面板是 Angular 的 如何使用window服务中的对象 我想用window location与 HTML 中的 href 完全相同的操作 它使我返回到主站点