我有一份打印机列表
GradingX.PrintersRoute = Ember.Route.extend({
model: function () {
var printerList = Em.A();
//Ember.
$.getJSON("http://localhost/printers").then(function (data) {
data.forEach(function (item) {
printerList.addObject(item);
}), function () {
alert("$.getJSON failed!");
};
});
return printerList;
},
});
我正试图从我的标题中访问
GradingX.HeaderRoute = Ember.Route.extend({
model: function () {
//console.log("test in header model route");
//return Ember.Object.create({
return Ember.RSVP.hash({
printers: What Goes Here?,
otherObjects: More Stuff Here
});
},
});
我正在尝试按照https://stackoverflow.com/a/20523510/697827的答案,但由于我没有通过Ember-Data访问,我不认为this.store.find('printers')会让我得到什么我需要。
我错过了什么。请帮忙!
答案 0 :(得分:1)
RSVP.hash
期望一个带有键和promise的对象作为值。所以我认为以下方法可行:
GradingX.HeaderRoute = Ember.Route.extend({
model: function () {
return Ember.RSVP.hash({
printers: $.getJSON("http://localhost/printers"),
otherObjects: $.getJSON("http://localhost/???")
});
},
});
在引用的答案中使用了this.store.find
,它也返回了一个承诺,但它是用DS.RecordArray
(像ember数据提供的对象这样的数组)解析的。所以对RSVP.hash
来说重要的是承诺。