多个模型到Ember路线

时间:2014-04-23 22:27:30

标签: ember.js ember-data

我有一份打印机列表

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')会让我得到什么我需要。

我错过了什么。请帮忙!

1 个答案:

答案 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来说重要的是承诺。