如何在 Ember 中将一个视图用于多个路由



我在views/posts/index.js有一个观点。我有一条用于帖子列表的路线,另一条用于搜索引擎的路线。如何在第二条路线(即搜索引擎)中使用它?

假设您有一个模板posts

<script type="text/x-handlebars" id="posts">
  <h3>{{ route }}</h3>
</script>

您想同时用于posts/indexposts/search

您可以像这样重写路由内的 renderTemplate 方法:

App.PostsIndexRoute = Ember.Route.extend({
  model: function(){
    return { route: "INDEX"};
  },
  renderTemplate: function(controller, model) {
    this.render('posts', {
      into: 'application',
      controller: controller,
      model: model
    }); 
  }
});
App.PostsSearchRoute = Ember.Route.extend({
  model: function(){
    return { route: "SEARCH"};
  },
  renderTemplate: function(controller, model) {
    this.render('posts', {
      into: 'application',
      controller: controller,
      model: model
    }); 
  }
});

在这里工作演示

最新更新