我有一个具有searchQuery
和建议属性的控制器。建议来自AJAX请求。如何在控制器中将建议属性作为承诺?
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')}`);
})
});
答案 0 :(得分: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);
});
})
只有少数几个地方你可以返回/发送一个承诺,并且假设你不想存储承诺。模型钩子和transitionTo / transitionToRoute方法。其余的时间他们会留给你,以防你真的想跟踪承诺。