xam*_*rax 7 javascript model-view-controller web-applications ember.js
干杯! 我有路线:
TravelClient.Router.map(function() {
this.resource('tours', function() {
this.resource('tour', { path: ':tour_id' }, function(){
this.route('seats');
});
});
});
Run Code Online (Sandbox Code Playgroud)
还有一个模板:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{...}}
</script>
Run Code Online (Sandbox Code Playgroud)
座位是Tour对象的一个属性:
TravelClient.Tour.find(1).get('seats');
12
Run Code Online (Sandbox Code Playgroud)
我像这样扩展我的TourSeats路线:
TravelClient.TourSeatsRoute = Ember.Route.extend({
model: function(params) {
return TravelClient.Tour.find(params.tour_id).get('seats');
}
});
Run Code Online (Sandbox Code Playgroud)
问题:如何在模板中渲染巡演席位?
更新:
我的灯具看起来像那样:
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
},...
Run Code Online (Sandbox Code Playgroud)
我改变了我的路线延伸到这个:
TravelClient.TourSeatsRoute = Ember.Route.extend({
model: function(params) {
return TravelClient.Tour.find(params.tour_id);
}
});
Run Code Online (Sandbox Code Playgroud)
在模板中:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{tour.seats}}
</script>
Run Code Online (Sandbox Code Playgroud)
更新2:
<script type="text/x-handlebars" data-template-name="tour/seats">
{{controller.model.seats}}
</script>
Run Code Online (Sandbox Code Playgroud)
并且它给予了不发现.经过一些调试我发现,params中没有任何id,params是空的,这就是为什么我无法在TourSeatsRoute函数中获得正确的模型.
ros*_*sta 18
如果您使用的是ember-1.0-pre.4 +,则仅针对您所在的特定路线返回参数,而不是整个URL.这里有一些讨论.
我相信此时所需的方法是使用this.modelFor您在父路由中设置的父资源的名称.所以在你的情况下,它将是:
TravelClient.TourSeatsRoute = Ember.Route.extend({
model: function() {
return this.modelFor("tour");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7960 次 |
| 最近记录: |