2017-07-07 12 views
0

私はクラスインジェクションについてAngularのドキュメントを読んだことがありますが、どのプラクティスが優れているのか理解できません。具体的には:私は、次のモデルクラスモデルクラス注入のベストプラクティス(Angular)

export class Documents{ 
private documentNumber:string; 
private countryIssuingDocument:string; 
private documentExpirationDate:string; 
private documentIssuingOffice:string; 

} 

を持っていると私はそれ

import { Component ,Output,EventEmitter} from '@angular/core'; 

import {Documents} from "../../model/document.model"; 

@Component({ 
selector: 'document-screen', 
templateUrl: 'document-screen.html' 
}) 


export class DocumentScreen { 

constructor(private documentData : Documents) { 
} 

} 

は、新しいキーワードを使用していることを行うには、それをより良いですかプロバイダでモデルクラスを宣言することにより、注入したい場合上記のように配列します。私は、この方法で私はシングルトンアーキテクチャを持っているので、プロバイダー配列で私のモデルクラスを宣言する方が良いと思います。私は正しい?

ありがとうございます!

+0

"シングルトン"クラスだけを注入する必要があります –

答えて

0

モデルオブジェクトには、そのタイプのデータが含まれています。あなたは間違いなく単一のオブジェクトを必要としません、あなたは同じタイプの多くのモデルを持っているかもしれません。したがって、依存性注入を使用するのは良い考えではありません。

ロジックを持ち、時にはコンポーネント間で共有されるデータを持つサービスに対してのみ依存性注入を使用します。

+0

モデルがどのくらい正確に使用されているかはOPからは分かりません。 「それは良いアイデアではない」ということをどうやって確かめることができますか?不明瞭な議論の意見に似ているように見える(これが「ベストプラクティス」の意見に基づく質問は話題外であると考えられる理由である)。 – estus

+0

十分に公正。シングルトンモデルのクラスは、私のサービスのように見えます。サービスはデータの格納にのみ使用されます。しかし、記述からは、複数の場所で使用するように定義されたクラスのように見えます。あなたは私の答えをdownvoteするすべての権利を持っています:)しかし、これは意見のある答えである必要はありません、それは質問が明確である場合角度docsを確認することによって定量的に答えられることができます。 – Skeptor

+0

この答えに追加するには...通常、モデルクラスは注射型サービスではなく「型」として使用されます。そして、このクラスのすべてのプロパティがプライベートなものであれば、それを使用したり、注入したりすることはありません。これらのプロパティのいずれかを使用することができます。 – DeborahK

関連する問題