typescript – 如何在Angular 2服务中注入文档

前端之家收集整理的这篇文章主要介绍了typescript – 如何在Angular 2服务中注入文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Angular2应用程序.为了在测试中嘲笑Document对象,我想将其注入到服务中,如:
import { Document } from '??' 

@Injectable()
export class MyService {
  constructor(document: Document) {}
}

角度的Title服务使用内部的getDOM()方法

https://github.com/angular/angular/blob/master/modules/%40angular/platform-browser/src/browser/title.ts

有没有简单的方式将文档注入到服务中?此外,我应该如何在provider数组中引用它?

bootstrap(provide(Document,{useClass: MyDocumentImpl})

其中Document是@angular/platform-browser/src/dom/dom_tokens.ts文件

@angular/platform-browser出口

最后的例子

基于Angular的DomRenderer does it的例子.

我-service.ts:

import { Inject,Injectable} from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';

@Injectable()
export class MyService {
  constructor(@Inject(DOCUMENT) private document: any) {}
}

我-service.spec.ts

import { provide } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';

import { MyService } from './my-service';

class MockDocument {}

describe('MyService',() => {
  beforeEachProviders(() => ([
    provide(DOCUMENT,{ useClass: MockDocument }),MyService
  ]));

  ...
});
原文链接:https://www.f2er.com/angularjs/142674.html

猜你在找的Angularjs相关文章