問題タブ [angular2-services]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - Angular 2 Beta - http データ サービスをコンポーネントに注入する際の問題
私は Angular2 を初めて使用します。Angular 1.3 の経験があり、各機能がどのように配線されているか (テンプレート構文、DI、ルーティング、観測可能) をそれぞれ取得するために、大規模な Angular 2 アプリを構築しようとしています。実際に私が直面している問題は、別のデータ サービスを作成し、すべての HTTP 呼び出しを配置して他のコンポーネントに挿入しようとしているときに発生します。コードの下で、このエラーが発生します。EXCEPTION: No provider for ConnectionBackend!
また、ダッシュボードの要約で冗長なインポートを削除するのに助けが必要です.
ダッシュボードHTTPサービス
ダッシュボード概要
ブートストラップ
ソース: https://github.com/sabha/angular2_store
デモ: http://demoapp-angular2store.rhcloud.com/client/index.html
dependency-injection - Angular 2 @Injectable() - 仕組み
@Injectable()
angular 2のサービスに装飾を追加する必要性を理解しようとしています.
ドキュメントから: https://angular.io/docs/ts/latest/guide/dependency-injection.html
HeroesComponent に @Injectable() を追加してみませんか? 本当に必要に応じて追加できます。HeroesComponent はすでに @Component で装飾されているため、必要ありません。TypeScript は、デコレータを使用して任意のクラスのメタデータを生成します。任意のデコレータが行います。
したがって、基本的に@Injectable()
は、他の装飾が利用できない場合にのみ追加する必要があります。利用可能なタイプの装飾がある場合、typescript コンパイラーは、コンストラクターに渡した変数に基づいて依存関係情報を自動的に生成するためです。constructor(private logger: Logger)
これは正しいですか?ありがとう
dependency-injection - angular2 サービスを他に注入 - @Inject 使用時のエラー
angular2 ベータ版を使用しています。@Inject アノテーションを使用して 1 つのサービスを別のサービスに DI するとエラーが発生し、どこが間違っているのかわかりません。すべてが Angular2 documentationに従っているようです。
アプリケーションのデータ ニーズに対応するために、クラウド ベースのデータ サービスである CloudDB を使用しています。CloudDB が提供する JavaScript ベースのクライアント ライブラリは、js アプリに含めて、cloudDB データベースで CRUD 操作を実行したり、CloudDB アカウントに保存した UserAuth API (ユーザーの資格情報を認証するための API) などの他のカスタム API を呼び出したりするために使用できます。cloudDB js クライアント lib API を使用する前に、CloudDB js オブジェクトの getClient メソッドを呼び出して、自分の cloudDB アカウントの URL と authKey を提供する必要があります。
私の angualar2 アプリでは、注入可能なサービス クラス (CloudDBProvider) を作成しました。これは、CloudDB アカウントの URL と authKey を格納し、CloudDB.getClient を呼び出して、CloudDB アカウントのプロバイダーの js クライアント オブジェクトを設定します。
ここで、この angular2 アプリで UserUtils サービスを作成し、上記のクラスに注入して cloudDBClient オブジェクトを取得したいと考えています。あなたのチュートリアルから学んだように、以下のようにUserUtilsサービスクラスをコーディングしました
}
次に、以下のように LoginPage コンポーネントで UserUtils を使用しようとしています。
UserUtils を使用すると、コンポーネント LoginPage が機能しません。ブラウザー コンソールがエラーをスローします - CloudDBProvider のプロバイダーがありません! (LoginPage -> UserUtils -> CloudDBProvider)
「authenicateUser」メソッドを UserUtils から CloudDBProvider に直接移動し、ユーザー認証のために LoginPage コンポーネントで CloudDBProvider を使用すると、すべてが正常に機能し、ユーザーは認証され、ログイン後にウェルカム ページに移動することに注意してください。また、UserUtils のコンストラクターから @Inject(CloudDBProvider) cloudDBPrvdr を削除しても、エラーはスローされず、アプリは動作します。明らかに、UserUtils で CloudDBProvider を使用することはできませんが、アプリはエラーをスローしません。これは、@Inject に何か問題があることを意味します。
私が間違っている手がかりはありますか?
dependency-injection - bootstrap() を呼び出す前に、angular2 の Http サービスにアクセスするにはどうすればよいですか?
ユーザーが認証されているかどうかを確認する必要があるため、ルートコンポーネントがブートストラップされると、ユーザーが/signin
要求したページに転送またはロードされます。(リクエストを行う前にサインオンする必要がある場合は、サービスにブール値を注入することでそれを行う予定です)。
Angular のドキュメントでは、「プラットフォーム インジェクター」または「ルート インジェクター」について言及しています。これにアクセスして Http オブジェクトを取得できますか? または、ブートストラップが呼び出されたときに作成され、Http を取得するために独自のインジェクターを最初から作成する必要がありますか?
angular - angular2 のグローバル データ
私はAngular 2に取り組んでいます。これには、他のコンポーネントのルーターアウトレットをロードするアプリコンポーネントがあり、ログインコンポーネントへのリンクもあります。しかし、ログインリンクを非表示および表示できるように、アプリコンポーネントとログインコンポーネントでアクセスできるグローバル変数を保持する方法が必要です。
これが私のアプリコンポーネントです:
ここに私のログインコンポーネントがあります
ログイン後、アプリコンポーネントでアクセスしてログインリンクを非表示および表示できる変数を設定する必要があり、必要に応じて他のコンポーネントでも設定する必要があります。
design-patterns - angularでサービス機能が完了したときにコンポーネントに通知する
バックエンドに http クエリを実行するサービスを作成します。
リクエストが完了したら、コンポーネント側を更新したいと思います。
コンポーネントとサービスの間で通信するにはどうすればよいですか?
さらに、私はベストプラクティスを探しています。