非常新的ember并试图搞乱我的第一个测试脚本。我一直在标题中得到错误,当我尝试使用把手循环数据夹具时会发生错误。任何帮助将不胜感激,谢谢!
给出错误的循环语句
{{#each player in controller}}
<tr> <!-- foreach statement here order by wins>loss>ties -->
<td>{{ name }}</td>
</tr>
{{/each}}
App.JS
var App = Ember.Application.create({
LOG_TRANSITIONS: true,
});
// Router
App.Router.map(function(){});
App.PlayersRoute = Ember.Route.extend({
model: function(){
return App.Player.find();
}
});
// Controllers
App.PlayersController = Ember.ArrayController.extend();
// View Helpers
// Models
App.Store = DS.Store.extend({
revision: 11,
adapter: 'DS.FixtureAdapter'
});
App.Player = DS.Model.extend({
name: DS.attr('string'),
wins: DS.attr('number'),
losses: DS.attr('number'),
ties: DS.attr('number'),
drop: DS.attr('boolean')
});
App.Player.FIXTURES = [{
id: 1,
name: 'Joe Jame',
wins: 2,
losses: 0,
ties: 0,
drop: 'False'
}, {
id: 2,
name: 'Froggy Bottom',
wins: 2,
losses: 0,
ties: 0,
drop: 'False'
}];
答案 0 :(得分:1)
render
helper创建一个新的模板/视图/控制器,因此在您的情况下,您需要传入Player
个对象的数组,以允许playerlist
模板具有正确的上下文用于渲染。
{{ render "playerlist" content }}
您还需要将PlayersRoute
更改为IndexRoute
,否则不会调用model
挂钩,也不会加载您的数据。
App.IndexRoute = Ember.Route.extend({
model: function(){
return App.Player.find();
}
});
答案 1 :(得分:1)
还有一个答案,首先我已将您的示例移植到jsbin IMO,它比jsfiddle更可靠,因为您已将render
语句更改为partial
并重命名为playerlist
_playerlist
模板到IndexRoute
。另外我在model
partial
钩子中定义了获取你的夹具数据,这就是结果:http://jsbin.com/iceraz/2/edit。接缝现在按预期工作。由于我们使用的是Playerlist
助手,因此不需要额外的IndexRoute
控制器或路由,它将全部由{{1}}处理。
希望它有所帮助。