Ember.js - 隐藏嵌套资源中的父视图

时间:2015-02-25 02:03:41

标签: javascript ember.js

我正在构建一个与YouTube类似的网络视频应用。我想要的网址路径为appname.com/video-title/video-id。我用这种方式代表它:

App.Router.map(function() {
  this.resource('videos', { path: '/:video_title' }, function(){
    this.resource('video', { path: '/:video_id' });
  });
});

我遇到的问题是video-id网址还显示video-title模板。

video-title网址应显示该视频名称的搜索结果,video-id网址应显示特定视频并在视频播放器中播放。

HTML:

<script type="text/x-handlebars" data-template-name="videos">
  <ul>
    {{#each video in model}}
      <li>{{video.title}} by {{video.author}}</li>
    {{/each}}
  </ul>
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="videos">
  <p>{{title}}</p>
</script>

型号:

var videos = [{
  id: '1',
  title: 'Skiing in Tahoe',
  author: 'daniel'
},{
  id: '2',
  title: 'Exploring San Francisco',
  author: 'nickmillerza'
}];

我是Ember的新手 - 也许我不应该将它用于这样的应用程序?

1 个答案:

答案 0 :(得分:3)

你可以完全做到这一点

App.VideoRoute = Ember.Route.extend({
  model: function(params){
    // return model
  },
  renderTemplate: function(controller) {
    // render it into the videos outlet
    this.render('videos', {controller: controller});
  }
});