嵌套路线的模板未在EmberJS应用程序中呈现

时间:2013-08-11 07:03:37

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

我正在设置一个测试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

任何指针?提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

请参阅here您工作的jsbin。

希望它有所帮助。