2013-11-15 56 views
7

我有一個控制器有searchQuery和建議屬性。這些建議來自AJAX請求。我如何才能將建議屬性作爲我控制器中的承諾?基於承諾的財產Ember

app/controllers/application.js

import Ember from 'ember'; 

const { computed, $ } = Ember; 

export default Ember.Controller.extend({ 
    searchQuery: '', 
    suggestions: computed('searchQuery', function() { 
    return $.getJSON(`songs/search.json?q=${this.get('searchQuery')}`); 
    }) 
}); 

回答

9

我假定你的意思,我怎樣才能得到結果自許,因爲你是返回一個承諾的建議性質。

searchQuery: '', 

suggestions: [], 

suggestionsUpdater: Ember.observer('searchQuery', function(){ 
    var self = this; 
    Ember.$.getJSON('songs/search.json?q=' + this.get('searchQuery')).then(function(data){ 
    self.set('suggestions', data); 
    }); 
}) 

目前只有少數地方,你可以返回/發送一個承諾,Ember的會假設你不想要存儲的承諾。模型鉤子和transitionTo/transitionToRoute方法。剩下的時間,他們把它留給你,以防你實際上想跟蹤承諾。

+1

是的,這就是我正在尋找的,我只是希望我可以返回承諾。 –