簡體   English   中英

具有承諾數據的Ember服務屬性

[英]Ember service property with promise data

我有一個獲取當前用戶的服務,當我返回一個硬編碼的對象時,它可以正確返回,但是我無法獲取它來從ajax調用返回數據。

export default  Ember.Service.extend({
  currentUser: Ember.computed(function() {
    Ember.$.ajax({
      url: "http://localhost:8000/v1/me/"
    }).then(function(data){
      console.log(data);
      return data;
    },
    function(err){
      console.log(err);
    });
  }),
});

根據console.log中的console.log ,我知道數據已正確返回。

當我在控制器中使用此服務時,它不會為currentUser返回任何內容,但是我知道一切都已正確完成,因為如果我將Ember.Object替換為ajax查詢,它將把該對象返回給Controller。

我是否需要對包含ajax查詢的屬性做一些特殊的事情,以便能夠在控制器中使用返回的數據?

我認為它不會以您想要的方式工作。 至少我從未讀過您可以將promise作為計算屬性返回。 您可以做的是在客戶端授權時從服務器獲取當前用戶並將其保存在本地存儲中。 並在您的計算屬性中,從本地存儲讀取數據並將其返回。

在這里,您可能會發現一個有趣的討論,在同樣的情況下對我有幫助。 如果您使用ember-simple-auth,您甚至會發現可以使用的代碼片段。

暫無
暫無

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

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