2013-11-15 17 views
7

Tôi có bộ điều khiển có thuộc tính searchQuery và đề xuất. Các đề xuất đến từ một yêu cầu AJAX. Làm thế nào tôi có thể làm cho các tài sản đề xuất một lời hứa trong Controller của tôi?Thuộc tính dựa trên lời hứa 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')}`); 
    }) 
}); 

Trả lời

9

tôi giả sử bạn có nghĩa là, làm thế nào tôi có thể nhận được kết quả từ các lời hứa, kể từ khi bạn đang quay trở lại một lời hứa đến tài sản đề nghị.

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

Chỉ có một vài nơi bạn có thể trả lại/gửi lời hứa và ember sẽ giả sử bạn không muốn lưu trữ lời hứa. Các móc mẫu và các phương thức transitionTo/transitionToRoute. Phần còn lại của thời gian họ để nó cho bạn, trong trường hợp bạn thực sự muốn theo dõi lời hứa.

+1

Vâng đó là những gì tôi đang tìm kiếm, tôi chỉ hy vọng tôi có thể trả lời lời hứa thay thế. –

Các vấn đề liên quan