서비스 중인 Document를 주입하는 방법은 무엇입니까?
저는 Angular 2 어플이 있습니다.조롱해서.Document
테스트 중인 객체, 다음과 같이 서비스에 주입하고 싶습니다.
import { Document } from '??'
@Injectable()
export class MyService {
constructor(document: Document) {}
}
그Title
Angular의 service는 내부 방식을 사용합니다.
간단한 주사 방법이 없을까요?Document
서비스를 위해?또한, 제가 그것을 어떻게 참조해야 할까요?providers
배열?
이는 Angular에서 한동안 지원해 왔습니다.
에서 제공하는 상수를 사용할 수 있습니다.@angular/common
꾸러미의
에 대한 설명DOCUMENT
constant(API 설명서에서 가져온):
기본 렌더링 컨텍스트를 나타내는 DI Token.브라우저에서 이것은 DOM 문서입니다.
예는 다음과 같습니다.
내 부역의service.ts:
import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Injectable()
export class MyService {
constructor(@Inject(DOCUMENT) private document: Document) {}
}
내 부역의서비스.스펙츠
import { provide } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { MyService } from './my-service';
class MockDocument {}
describe('MyService', () => {
beforeEachProviders(() => ([
provide(DOCUMENT, { useClass: MockDocument }),
MyService
]));
...
});
저는 addport의 질문(아직 50개의 응답 포인트는 아님)에 대해 직접적으로 언급할 수는 없지만, 여기 각진 문서에 명시된 것과 같습니다.
Blockquote @GünterZöchbauer 도큐먼트가 더 이상 사용되지 않는 것 같습니다.이것이 없어진 후에 어떻게 해야 하는지 아십니까?예를 들어, 파비콘을 동적으로 설정하려면 어떻게 해야 합니까?
플랫폼 브라우저에서 이와 같이 가져오는 대신:
import { DOCUMENT } from '@angular/platform-browser';
각도 공통에서 가져오기:
import {DOCUMENT} from '@angular/common';
@Gunter Zöchbauer의 답변 외에.
각도 정의 도큐먼트를 주입으로 정의합니다.상품권
export const DOCUMENT = new InjectionToken<Document>('DocumentToken');
그리고 browser.ts에서 문서와 함께 주입합니다.
{provide: DOCUMENT, useFactory: _document, deps: []}
export function _document(): any {
return document;
}
따라서 사용할 때는 주입만 하면 됩니다.@Inject(DOCUMENT)
또는 토큰을 직접 사용합니다.deps:[DOCUMENT]
import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Injectable()
export class MyService {
constructor(@Inject(DOCUMENT) private document) {}
}
문제의 원인은 ": 문서"입니다.
언급URL : https://stackoverflow.com/questions/37521298/how-to-inject-document-in-service
'programing' 카테고리의 다른 글
C/C++ 다차원 배열 초기화 시 크기 생략 (0) | 2023.10.15 |
---|---|
부트스트랩 응답 페이지에서 디브의 중심을 맞추는 방법 (0) | 2023.10.10 |
PHP 코드의 속도가 느려지는 위치를 확인합니다(성능 문제). (0) | 2023.10.10 |
현재 분기의 단일 파일을 메인 분기의 동일한 파일로 덮어쓰시겠습니까? (0) | 2023.10.10 |
Angular JS와 눈에 띄지 않는 자바스크립트 (0) | 2023.10.10 |