【问题标题】:Nested route's template not getting rendered in EmberJS app嵌套路由模板未在 Ember JS 应用程序中呈现
【发布时间】:2013-08-11 07:03:37
【问题描述】:

我正在设置一个测试 Ember 应用,目前看起来像这样:

App = window.App = Ember.Application.create();

App.Router.map(function() {
  this.resource('subscriptions', { path: '/' }, function() {
    this.route('media', { path: '/:photo_id' });
  });
});

App.SubscriptionsRoute = Ember.Route.extend({
  model: function() {
    return App.Subscription.findAll();
  }
});

App.SubscriptionsMediaRoute = Ember.ObjectController.extend({
  model: function(params) {
    return App.Subscription.find(params.photo_id);   
  },
  serialize: function(model) {
    return { photo_id: model.photo_id };
  }
});

App.Subscription = Ember.Object.extend();

App.Subscription.reopenClass({
  findAll: function(id) {
    var subs = Ember.A([
      App.Subscription.create({ id: 1, photo_id: 221, name: "Test 1" }),
      App.Subscription.create({ id: 2, photo_id: 222, name: "Test 2" }),
      App.Subscription.create({ id: 3, photo_id: 223, name: "Test 3" })
    ]);  

    return subs; 
  }
});

这个想法是显示订阅列表,每个订阅最终都会链接到一些媒体(图像)以在访问正确路线时显示,我正在显示订阅列表,如下所示:

<script type="text/x-handlebars" data-template-name="subscriptions">
    <div class="col-3">
      <div class="list-group">
        {{#each subscription in controller}}
          {{#linkTo 'subscriptions.media' subscription classNames="list-group-item"}}
            {{subscription.name}}
          {{/linkTo}}
        {{/each}}
      </div>
    </div>
    <div class="col-9">
      {{outlet}}
    </div>
</script>

<script type="text/x-handlebars" data-template-name="subscriptions/media">
    Display photos here -- NOT RENDERING --
</script>

一切看起来都很好,但由于某种原因,当我单击链接时,我的 subscriptions/media 模板没有显示在订阅出口上,这是一个 jsbin 供参考:http://jsbin.com/ubumag/3/edit

任何指针?提前致谢。

【问题讨论】:

    标签: javascript templates ember.js routes url-routing


    【解决方案1】:

    您的App.SubscriptionsMediaRoute 不是必需的,这是 ember 已经自动为您的路由器映射提供的默认行为,因此请将其删除或注释掉,一切都会正常工作。

    请参阅 here 您的工作 jsbin。

    希望对你有帮助。

    【讨论】:

    • 谢谢,但问题是我需要在我的 url 中使用 photo_id 值来获取 subscriptions.media 路由中的照片,而不是 id 这就是我使用 @987654326 的原因@ 函数,但考虑到没有该代码它可以正常工作,那么我一定是错误地实现它
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多