1

我有一个带有球员和球队模型的梦幻体育应用程序。我正在尝试将有关 Players 模型/夹具的查询输出为由命名插座中的模板迭代的模型。我认为我的问题在于“availableTeams”控制器/路由/模型/路由。

我正在尝试为没有团队的玩家找到我的 Player 模型。

App.AvailablePlayersController = Ember.ArrayController.extend({
 availPlayers: function() {
    return App.Player.find({league: ''});
    // return App.Player.find({league: 'mlb'}); // Doesn't work either
  },
});

模板正在渲染,因为显示了静态文本,但 Chrome emberjs 调试器将 availablePlayers 的模型显示为没有值。我搜索了 SO、EmberJS.com 入门指南和无数 JSFiddles,但没有任何效果。我不知道我的方法是否错误,或者我是否遗漏了一些简单的东西。任何帮助表示赞赏。

完整的 JSFiddle 在这里:http: //jsfiddle.net/sandalsoft/77P8z/

PS - 该应用程序是一个多运动幻想联赛,其中球队是球员,所以不要让球员赛程中的球队名称让你失望。

编辑:更新了现在运行的小提琴:http: //jsfiddle.net/77P8z/

4

1 回答 1

3

当您使用renderTemplate控制器时,不会从路由中获取模型,因为没有路由。您使用的查找器正在返回 a promise,但这些东西属于路线。它是 Catch-22,因此您必须在控制器上手动设置content或。model

我通常在 custom 之前这样做render。你可以在其他地方做,关键是手动设置内容。这是修改后renderTemplateApplicationRoute,

var availController = this.controllerFor('availablePlayers');
App.Player.find({league: 'epl'}).then(function(result) {
    availController.set('model', result);
});

// render into outlet

更新的jsfiddle

我注意到您使用的是 rc.3。如果可能,请尝试切换到 rc.6,您将需要异步路由器,并且最终会修复其中的错误。

于 2013-07-12T04:44:54.590 回答