Ember.js - 在嵌套资源中隐藏父视图
Ember.js - Hiding parent views in nested resources
我正在构建一个功能与 YouTube 类似的网络视频应用程序。我想要的 URL 路径是 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
url 也显示 video-title
模板。
video-title
url 应显示该视频名称的搜索结果,video-id
url 应显示特定视频并在视频播放器中播放。
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 的新手 - 也许我不应该将它用于这样的应用程序?
你完全可以做到这一点
App.VideoRoute = Ember.Route.extend({
model: function(params){
// return model
},
renderTemplate: function(controller) {
// render it into the videos outlet
this.render('videos', {controller: controller});
}
});
我正在构建一个功能与 YouTube 类似的网络视频应用程序。我想要的 URL 路径是 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
url 也显示 video-title
模板。
video-title
url 应显示该视频名称的搜索结果,video-id
url 应显示特定视频并在视频播放器中播放。
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 的新手 - 也许我不应该将它用于这样的应用程序?
你完全可以做到这一点
App.VideoRoute = Ember.Route.extend({
model: function(params){
// return model
},
renderTemplate: function(controller) {
// render it into the videos outlet
this.render('videos', {controller: controller});
}
});