javascript - Ember.js 嵌套路由

标签 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');
    });   
  });
});

还有一个模板:

  <script type="text/x-handlebars" data-template-name="tour/seats">
    {{...}}
  </script>

Seats 是 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');
  }
});

问题:如何在模板中渲染tour的座位?

更新:

我的固定装置看起来像这样:

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 是空的,这就是为什么我无法在 TourSeatsRou​​te 函数中获得正确的模型。

最佳答案

如果您使用的是 ember-1.0-pre.4+,则只会为您所在的特定路由返回参数,而不是整个 URL。有一些 discussion about this here .

我相信此时所需的方法是使用 this.modelFor 传递您在父路由中设置的父资源的名称。所以在你的情况下,它将是:

TravelClient.TourSeatsRoute = Ember.Route.extend({
  model: function() {
    return this.modelFor("tour");
  }
});

关于javascript - Ember.js 嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642340/

相关文章:

python - Sklearn 分类器和 Flask 问题

ios - iOS WebApp 的 FB.login 中断流程

r - 如何在 Shiny 的应用程序中添加条件 slider 输入?

javascript - 如何使用 foreach 绑定(bind)从选择选项传递参数以触发和过滤数组可观察对象

php - MVC 中 Controller 和模型的区别

c++ - 在 QTableView 的自定义模型中添加和删除项目

c# - 如何只验证 ASP .NET MVC 中模型的一部分?

javascript - JS - 在 switch 语句中使用多条件案例

javascript - 在 JavaScript 中使用 == 的相等对象字符串

javascript - 在 Action 重定向 mvc 期间显示等待动画