2017-07-19 9 views
0

から「サービス」からプロパティを取得することができませんが、私は、コンポーネントへのサービスからデータを取得しようとしていますが、私はとエラーを取得しています:EmberJS - 私の燃えさしアプリケーションでコンポーネント

TypeError: this.start.toggleProperty is not a function - しかし、私は持っています。

輸入エンバー '燃えさし' から;

export default Ember.Component.extend({ 
    start: Ember.inject.service(), 
    message: null, 
    actions: { 
     pressMe() { 
      this.start.toggleProperty('isOn'); //throws error 
      // this.set('message',this.start.importantInfo()); 
      // Ember.log(this.start.isOn); 
      console.log("start is", this.start.isOn); //undefined!? 
     } 
    } 
}); 

ここに私のサービスjsがある:サービスがあるプロパティ

ここでは私のコンポーネントjsがあります:

import ember from 'ember';

export default Ember.Service.extend({ 
    isOn: false, 
    importantInfo(){ 
     return "Important Info is " + this.get('isOn'); 
    } 
}); 

私は何かを逃しましたか?誰か私に正しい方法を教えてください? ありがとうございます。

this.get('start').toggleProperty('isOn') 

理由は答えは

+0

はコードのその '輸入...'一部ではありませんか?そうであれば、適切にフォーマットしてください。 – Anthon

答えて

1

注入特性がロードされた遅延です。サービスが明示的に呼び出されるまで にインスタンス化されないことを意味します。したがって、 はget関数を使用してコンポーネント内のサービスにアクセスする必要があります。そうしないと、定義されていない可能性があります。

参考:
https://guides.emberjs.com/v2.14.0/applications/services/#toc_accessing-services

関連する問題