2013-11-15 6 views
7

Ich habe einen Controller, der eine searchQuery und Vorschläge Eigenschaft hat. Die Vorschläge stammen aus einer AJAX-Anfrage. Wie kann ich die Vorschlagseigenschaft in meinem Controller zu einem Versprechen machen?Promise basierte Eigenschaft 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')}`); 
    }) 
}); 

Antwort

9

Ich nehme an, Sie meinen, wie kann ich die Ergebnisse aus dem Versprechen bekommen, da Sie ein Versprechen an die Vorschläge Eigenschaft zurückkehren.

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); 
    }); 
}) 

Es gibt nur wenige Orte, wo man zurückkehren kann/senden ein Versprechen und Ember gehen Sie das Versprechen speichern nicht übernehmen wollen. Die Model-Hook- und TransitionTo/transitionToRoute-Methoden. Den Rest der Zeit überlassen sie es Ihnen, für den Fall, dass Sie tatsächlich das Versprechen halten sollten.

+1

Ja, das ist, was ich suche, ich habe nur erwartet, dass ich stattdessen das Versprechen zurückgeben könnte. –

Verwandte Themen