我有一个带有玩家和团队模型的幻想体育应用程序。我正在尝试在Players模型/ fixture上输出一个查询,作为由命名插座中的模板迭代的模型。我认为我的问题在于'availableTeams'控制器/路由/模型/路由。
我正试图在我的玩家模型上找到没有团队的玩家。
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,但没有工作。我不知道我的方法是错误的,还是我错过了一些简单的东西。任何帮助表示赞赏。
Full JSFiddle在这里:http://jsfiddle.net/sandalsoft/77P8z/
PS - 该应用程序是一个多项运动的幻想联盟,其中团队是玩家,所以不要让玩家夹具中的团队名称抛弃你。编辑:更新了现在运行的小提琴:http://jsfiddle.net/77P8z/
答案 0 :(得分:3)
当您使用renderTemplate
时,您的控制器无法从路线获取模型,因为没有路线。您使用的查找器返回promise
,但这些东西属于路径。它是Catch-22,因此您必须在控制器上手动设置content
或model
。
我通常在自定义render
之前执行此操作。您可以在其他地方执行此操作,关键是手动设置内容。以下是renderTemplate
的修改后的ApplicationRoute
,
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,如果可能的话,你将需要异步路由器,并最终修复它。