[英]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.