【发布时间】:2013-01-16 12:45:42
【问题描述】:
干杯!我有路线:
TravelClient.Router.map(function() {
this.resource('tours', function() {
this.resource('tour', { path: ':tour_id' }, function(){
this.route('seats');
});
});
});
还有一个模板:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{...}}
</script>
座位是 Tour 对象的一个属性:
TravelClient.Tour.find(1).get('seats');
12
我像这样扩展我的 TourSeats 路线:
TravelClient.TourSeatsRoute = Ember.Route.extend({
model: function(params) {
return TravelClient.Tour.find(params.tour_id).get('seats');
}
});
问题:如何在模板中渲染游览的座位?
更新:
我的灯具是这样的:
TravelClient.Store = DS.Store.extend({
revision: 11,
adapter: 'DS.FixtureAdapter'
});
TravelClient.Tour = DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
seats: DS.attr('number')
});
TravelClient.Tour.FIXTURES = [{
id: 1,
title: "Brighton, England",
description: "Lorem ipsum dolor ... .",
seats: 12
},...
我已经改变了我的路线延伸到这个:
TravelClient.TourSeatsRoute = Ember.Route.extend({
model: function(params) {
return TravelClient.Tour.find(params.tour_id);
}
});
在模板中:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{tour.seats}}
</script>
更新 2:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{controller.model.seats}}
</script>
它会返回 undefind。 经过一番调试,我发现params中没有任何id并且params为空,这就是为什么我无法在TourSeatsRoute函数中获得正确的模型。
【问题讨论】:
-
函数参数中不需要参数吗?就像你在第二个中一样。
model: function(params) { -
哦,是的,我确实喜欢那样,很明显,只是在这里粘贴了错误的编辑。无论如何,问题仍然存在。
-
请检查答案中的更新。
-
从嵌套路由的父资源访问模型:stackoverflow.com/a/14688346/1662820
标签: javascript model-view-controller web-applications ember.js