相关疑难解决方法(0)

单元测试/模拟Angular2中的窗口属性(TypeScript)

我正在为Angular2中的服务构建一些单元测试.

在我的服务中,我有以下代码:

var hash: string; hash = this.window.location.hash;

但是,当我运行包含此代码的测试时,它将失败.

利用Window的所有功能会很棒,但是当我使用PhantomJs时,我认为这不可行(我也尝试过使用Chrome产生相同结果的功能).

在AngularJs中,我会使用模拟$ Window(或者至少是有问题的属性),但由于Angular2单元测试没有很多文档,我不知道如何做到这一点.

有人可以帮忙吗?

unit-testing phantomjs typescript karma-jasmine angular

16
推荐指数
3
解决办法
2万
查看次数

16
推荐指数
6
解决办法
2万
查看次数

如何在Angular Universal中获取完整的基本URL(包括服务器,端口和协议)?

我需要获取我的Angular 2应用程序的完整基本URL(例如http:// localhost:5000https://productionserver.com),以便我可以在应用程序的上下文中将其传递给第三方服务.应用程序的位置取决于它是开发,各种登台/测试环境还是生产,我想动态检测它,所以我不需要维护硬编码列表.

一个类似的问题已经提出,在过去,但答案(即使用window.location.hostname或window.location.origin属性的某些版本),只有当angular2应用程序正在被浏览器呈现工作.

我希望我的应用程序可以与Angular Universal一起使用,这意味着它需要在服务器端呈现,而无法访问像window.location这样的DOM对象.

任何想法如何实现这一目标?供参考,使用asp.net核心作为后端(使用默认的dotnet新角度模板).

angular-universal angular

7
推荐指数
2
解决办法
7667
查看次数

如何在angular2中获取主机

我正在寻找一种方法来使用Angular2获取当前URL的主机.等等

 http://example.com/myapp.html
Run Code Online (Sandbox Code Playgroud)

我想得到:

 example.com
Run Code Online (Sandbox Code Playgroud)

(在angular1中我使用$ location.host()来解析它.有类似的东西吗?)

angular

3
推荐指数
1
解决办法
2万
查看次数

Angular 7:如何获取当前页面的完整URL

如何在不使用angular 7的情况下获取完整的当前URL window.location.href

例如,假设我当前的网址是 http://localhost:8080/p/drinks?q=cold&price=200

如何获得完整的URL而不仅仅是完整的URL /p/drinks?q=cold&price=200

我已经尝试过使用this.router.url此命令,但/p/drinks?q=cold&price=200不能提供完整的主机名。

我不想使用的window.location.href原因是它导致ng-toolkit / universal中的渲染出现问题

我尝试遵循此解决方案,这似乎与我存在相同的问题,并且也进行了更新

如何在Angular2中获取服务域名

这是我的代码

windowProvider.js

import { InjectionToken, FactoryProvider } from '@angular/core';

export const WINDOW = new InjectionToken<Window>('window');

const windowProvider: FactoryProvider = {
  provide: WINDOW,
  useFactory: () => window
};

export const WINDOW_PROVIDERS = [
  windowProvider
];
Run Code Online (Sandbox Code Playgroud)

app.module.ts中

@NgModule({
    .......
    providers:[
    .......
    windowProvider
   ]
})
Run Code Online (Sandbox Code Playgroud)

在我的必填页面中:

import {WINDOW as WindowFactory} from '../../factory/windowProvider';
......
 constructor(private router: Router, private helper: Helpers, …
Run Code Online (Sandbox Code Playgroud)

javascript angular-universal angular angular7

2
推荐指数
1
解决办法
2205
查看次数