【问题标题】:Creating a Location object in TypeScript在 TypeScript 中创建 Location 对象
【发布时间】:2015-11-25 06:57:32
【问题描述】:

我在将 Angular 之外的应用重定向到注销页面时遇到问题。 我正在使用$window.location.href 来做这件事,但它不适用于 FireFox。 所以,有人建议直接使用$window.location,但由于我是用 Typescript 编写的,所以我需要创建一个新的 Location 对象,而不是将我的字符串分配给它......

我查看了 lib.d.ts,发现该位置声明为:

declare var Location: {
    prototype: Location;
    new(): Location;
}

所以我将我的代码调整为:

var url: string = "http:\\\\host:port/blabla/logout";
var loc: Location = new Location();
loc.href = url;
this.$window.location = loc;

但出现此错误:

Error: Illegal constructor.

知道如何创建 Location 对象吗?这样做是个好习惯吗? 还有其他见解吗?

谢谢

【问题讨论】:

    标签: angularjs location typescript href


    【解决方案1】:

    看起来你实际上是not supposed to build new Location objects。所以我认为在任何地方都没有可用的构造函数。虽然你can use anchors to build them for you.

    如果您尝试设置新位置,可以设置 window.location.href 而不是 window.location (These two are equivalent)。

    【讨论】:

      【解决方案2】:

      如果你想直接分配一个 String 并让 TypeScript 随之而来,你可以这样做

       window.location = <any>"http://host:port/blabla/logout";
      

      【讨论】:

      • 不确定是否可以创建 Location 对象。 DOM 文档只是提到您可以从window.locationdocument.location 获取它,并且可以为其分配一个字符串
      • 为什么这是公认的答案?我需要第二个位置对象,操作一些属性并在不更改当前位置的情况下使用生成的 url。
      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 2018-05-05
      • 2022-12-30
      • 2018-11-13
      • 2013-01-29
      • 2021-06-09
      • 1970-01-01
      相关资源
      最近更新 更多