簡體   English   中英

EmberJS-無法從組件的“服務”中獲取屬性

[英]EmberJS - Not able to get property from "service' from Component

在我的ember應用程序中,我試圖從服務到組件檢索數據,但出現錯誤消息:

TypeError: this.start.toggleProperty is not a function -但是我有一個屬性,即服務。

這是我的組件js:

從'ember'導入Ember;

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:

從'ember'導入Ember;

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

我錯過了什么嗎? 有人建議我正確的方法嗎? 提前致謝。

答案是

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

原因是

注入的屬性是延遲加載的; 意味着在顯式調用該屬性之前,不會實例化該服務。 因此,您需要使用get函數訪問組件中的服務,否則可能會得到未定義的信息。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM