2013-11-15 26 views
7

Mam kontroler, który ma właściwość searchQuery i sugestie. Sugestie pochodzą z żądania AJAX. Jak mogę uczynić propozycję własności obietnicą w moim kontrolerze?Przyrzeczona nieruchomości 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')}`); 
    }) 
}); 

Odpowiedz

9

Zakładam, to znaczy, w jaki sposób można uzyskać wyniki z obietnicą, ponieważ wracają obietnicę nieruchomości sugestie.

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

Istnieje tylko kilka miejsc, gdzie można wrócić/Wyślij obietnicę i Ember będzie zakładać, że nie chcesz, aby zapisać obietnicy. Metoda hook i metody transitionTo/transitionToRoute. Przez resztę czasu pozostawiają to tobie, na wypadek gdybyś naprawdę chciał śledzić obietnicę.

+1

Tak, tego właśnie szukam, po prostu spodziewałem się, że zamiast tego mogę zwrócić obietnicę. –