2016-11-30 13 views
-1

によると動作しません.component.tsイオン/角度2依存性の注入は、私はから依存性注入パターン以下てるパターン

import { Component, ViewChild } from '@angular/core'; 
import { MyService } from '../services/MyService'; 

@Component({ 
    templateUrl: 'app.html', 
    providers: [MyService] 
}) 

export class MyApp {} 

MyComponent.ts

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'theComponent', 
    templateUrl: 'theComponent.html' 
}) 
export class thisComponent { 
    constructor(private thisService: MyService) {} 

私は次のエラーを取得する:は名 'MyServiceで'を見つけることができません。

私はすでに確認 「emitDecoratorMetadata」ことを確認するためにチェック:真

私も、国民を試みたプライベートおよびパブリック/プライベート余分discriptorをオフに左にと私は同じエラーを毎回取得しました。

+0

このようになっています.Componentにはインポートがありません。 ( 'import {MyService} from '../ services/MyService';')実際のコードですか? – Fiddles

+0

@ Fiddles、ご返信ありがとうございます。私はここでひどく詳細にゆっくりと死んでいる。これは私のコードを単純化したものです。なぜあなたは尋ねるのですか、あるいはあなたは何が欠けていると思いますか?なぜ私はMyComponentをMyComponentの中にインポートする必要があるのですか?私はそれがすでにapp.componentを介して行われていると思いました。どうか明らかにしてください。 – rashadb

+1

@誰でも私に-1を与えたが、何が悪くなったのか説明してください。サービスへのパスをインポートするための詳細は、ドキュメント内のパターンから削除されました。私はちょうど今Angular 2を学んでいる唯一の初心者ではないことを考えれば、私はこのトラップに落ちる他の人がいることを確信しています。うまくいけば私はそれらをしばらく保存しました。 – rashadb

答えて

1

importあなたのクラスファイルには、別のファイル/モジュールからエクスポートされた定義を使用することができます。そのクラス定義を使用するすべてのファイルにクラスをインポートする必要があります。

のでthisComponent.tsに、あなたは

import { MyService } from './path/to/services/MyService';

、これは活字体

にやっている。これはAngular2内のモジュールのインポート性質が異なるものについて詳細はhttps://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#11.3.2を参照してくださいを含める必要があります依存関係チェインとインジェクタに関するものです。

+0

ありがとうございましたが、rootのapp.component.tsファイルを持っていて、他の場所にインポートする必要がある場合は、それをインポートするのは何ですか? – rashadb

+0

短いバージョンでは、定義をファイルにインポートして、そのファイルで使用できるようにする必要があります。 – Fiddles