Ember.js:路由返回多个模型,包括一个承诺,给出错误
Ember.js: route returning multiple models including a promise, gives error
我正在尝试 return 一条路线的多个模型,是的,我正在使用 RSVP.Hash (GitHub link):
App.GamesIndexRoute = Ember.Route.extend({
model: function () {
return new Ember.RSVP.Hash({
player: App.LocalPlayer.singleton(this.store),
games: [{id: 1, name: "Game 1"}, {id: 2, name: "Game 2"}]
});
},
setupController: function(controller, models) {
this._super(controller, models);
controller.set("player", models.player);
}
});
问题是,其中一个对象来自承诺本身,因为我只想从该模型中找到第一个对象 (GitHub link):
App.LocalPlayer = DS.Model.extend({
name: DS.attr("string"),
playerId: DS.attr("string")
});
App.LocalPlayer.singleton = function (store) {
return new Ember.RSVP.Promise(function (resolve, reject) {
store.find("localPlayer").then(function (things) {
var p = things.get("firstObject");
if(!p) {
p = store.createRecord("localPlayer");
}
resolve(p);
reject({error: "Error loading LocalPlayer"});
});
});
};
当我在创建 LocalPlayer 对象后尝试转到 games.index 路线时,它说:"Error while processing route: games.index undefined is not a function TypeError: undefined is not a function"
回购 GitHub here - 完全开源。请帮忙。
哈哈哈....我意识到我的错误。是我没有正确阅读的错,它让我失去了大约 2 天的生命。嗯。
RSVP.Hashes 初始化如下:
return Ember.RSVP.hash({ ... })
不像我做的那样:
return new Ember.RSVP.Hash({ ... })
问题已解决。我希望错误报告更清楚一些。
我正在尝试 return 一条路线的多个模型,是的,我正在使用 RSVP.Hash (GitHub link):
App.GamesIndexRoute = Ember.Route.extend({
model: function () {
return new Ember.RSVP.Hash({
player: App.LocalPlayer.singleton(this.store),
games: [{id: 1, name: "Game 1"}, {id: 2, name: "Game 2"}]
});
},
setupController: function(controller, models) {
this._super(controller, models);
controller.set("player", models.player);
}
});
问题是,其中一个对象来自承诺本身,因为我只想从该模型中找到第一个对象 (GitHub link):
App.LocalPlayer = DS.Model.extend({
name: DS.attr("string"),
playerId: DS.attr("string")
});
App.LocalPlayer.singleton = function (store) {
return new Ember.RSVP.Promise(function (resolve, reject) {
store.find("localPlayer").then(function (things) {
var p = things.get("firstObject");
if(!p) {
p = store.createRecord("localPlayer");
}
resolve(p);
reject({error: "Error loading LocalPlayer"});
});
});
};
当我在创建 LocalPlayer 对象后尝试转到 games.index 路线时,它说:"Error while processing route: games.index undefined is not a function TypeError: undefined is not a function"
回购 GitHub here - 完全开源。请帮忙。
哈哈哈....我意识到我的错误。是我没有正确阅读的错,它让我失去了大约 2 天的生命。嗯。
RSVP.Hashes 初始化如下:
return Ember.RSVP.hash({ ... })
不像我做的那样:
return new Ember.RSVP.Hash({ ... })
问题已解决。我希望错误报告更清楚一些。