[解決済み] サービスにDocumentを挿入する方法は?
2022-03-01 03:39:33
質問
Angular 2のアプリケーションを持っています。をモックするために
Document
オブジェクトをテストするために、このようなサービスにインジェクトしたいと思います。
import { Document } from '??'
@Injectable()
export class MyService {
constructor(document: Document) {}
}
は
Title
Angularのサービス
は内部の
getDOM()
メソッド
.
を注入する簡単な方法はありますか?
Document
をサービスに追加できますか?また
providers
の配列は?
どのように解決するのですか?
これは以前からAngularでサポートされています。
を使用することができます。
DOCUMENT
で提供される定数
@angular/common
パッケージを使用します。
の説明
DOCUMENT
定数(この定数は
APIドキュメント
):
メインのレンダリングコンテキストを表すDIトークン。ブラウザでは、これはDOMドキュメントである。
以下に例を示す。
my-service.service.ts:
import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Injectable()
export class MyService {
constructor(@Inject(DOCUMENT) private document: Document) {}
}
my-service.service.spec.ts
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
]));
...
});
関連
-
[解決済み】アンギュラーコンポーネントにサービスを注入しようとするとエラー "EXCEPTION: Can't resolve all parameters for component"、なぜ?
-
[解決済み] 型{ [key: string]: boolean; }は何を意味するのでしょうか?
-
[解決済み] TypeScriptの非同期関数でプロミスを返す
-
[解決済み] エラー TS2345: 型 'T' の引数は型 'object' のパラメータに代入できません。
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] TypeScriptで文字列をenumに変換するには?
-
[解決済み] TypeScriptでインターフェースファイルの定義に基づいたオブジェクトを作成するには?
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み】Angular 6でサービスを生成する際に、InjectableデコレータでprovidedInの目的は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Typescript : require文はimport文の一部ではない
-
[解決済み] エラー TS2322: タイプ 'Object[]' はタイプ '[Object]' に割り当てられません。
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] TypeScriptのsetTimeoutはどのような戻り値型を使用すればよいですか?
-
[解決済み] TypeScriptの非同期関数でプロミスを返す
-
[解決済み] モジュール 'module-name' の宣言ファイルが見つかりませんでした。'/path/to/module-name.js' は暗黙のうちに 'any' 型を持っています。
-
[解決済み] TypeScriptの "*.d.ts "について
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み】tsconfig.jsonファイルを生成するにはどうしたらいいですか?
-
[解決済み] Angular 5 - クリップボードにコピーする