2017-11-01 6 views
2

EmberJSの新機能です。チュートリアルを進んでいます。私はチュートリアルの一部で、サービスの作成とコントローラへの注入について説明しています(コントローラであれば100%ではありませんが、AngularJSから来ています。Emberが注入時にサービスを発生させるエラーを発生しました

Emberプロジェクトの端末では、ember g service authenticationというコマンドを実行します。サービスが私のアプリのservicesディレクトリにファイルauthentication.jsで作成されたことがわかります。私はしかし、私のコントローラに注入しようとすると、私は、チュートリアルでより新しいエンバーのバージョンを使用していますので、

Error: Assertion Failed: Attempting to inject an unknown injection: 'service:authentication 

はこれが可能であり、私はローカルでアプリを果たすブラウザでこの問題を取得します現在、サービスを注入する別の方法がありますか?このチュートリアルで

import ember from 'ember' 

export default Ember.Service.extend({ 
    records: [] 
}); 

サービスの構文であり、これは私が今持っているものの構文であるため、プロジェクトはember new

import Service from '@ember/service'; 

export default Service.extend({ 
    records: [] 
}); 

組織で構築されたとき、私は、自動作成されたことを尋ねます.js燃えさしバージョン2.16では

import Route from '@ember/routing/route'; 

export default Route.extend({ 

    authentication: Ember.inject.service(), 

    setupController(controller) { 
    this._super(...arguments); 
    } 
}); 
+2

を再起動した判明EmberJS.Howeverに関するすべての情報について、あなたみんな'Ember.inject.service'に頼るのではなく、" @ ember/service ";から{inject}を呼び出してください。 –

答えて

2

「サービスが注入されている場合は、」あなたは、インポートするためのJavaScriptモジュールAPIを活用することができます。
Refer this blog post
Refer this full list

あなたの燃えさしのバージョンが、その後、2.16以下であれば

import ember from 'ember' 

export default Ember.Service.extend({ 
    records: [] 
}); 

燃えさしのバージョンがある場合>続い= 2.16以下でインポートする正しい方法は、ある

import Service from '@ember/service'; 

export default Service.extend({ 
    records: [] 
}); 
2

ember 2.16を使用しているようです(他の人が新しいコンポーネントのモジュール化を使用していると回答しているので、2.15 oあなたがあなたの記事にも言及しているように、先行しています)。

それはあなたがあまりにもあなたの新しいルートに新しいモジュールを使用する必要があります意味があります:

import Route from '@ember/routing/route'; 
import { inject as service } from "@ember/service"; 

export default Route.extend({ 
    authentication: service() 
}); 

一つacclaration:あなたが表示されているコードはrouteクラスである(また、そこcontrollersルート階層にあり、ルート階層の一部ではないcomponentsです)。あなたは上記のレベルのいずれかであなたの真新しいサービスを注入することができます。

2

おかげでそれはあなたが変えることができる一つのことは `インポートを使用している、私が行うために必要なすべては、あなたが共有コードは大丈夫です、私のローカルサーバー-.-

+0

同じエラーメッセージが表示され、サーバーを再起動すると問題が解決しました。ここに書いてくれてありがとう。 –

関連する問題