Ember.js中单个资源中的多个动态段
Multiple Dynamic Segments in a Single Resource in Ember.js
有没有一种方法可以用一个资源拥有多个动态段?我的用例是避免让用户点击索引路由。
示例:
this.resource('tracks', { path: 'albums/:album_id/tracks/:tracks_id' });
我想避免用户点击以下路线:
albums/:album_id
albums/:album_id/tracks
albums/:album_id/tracks/:track_id
路线:
this.resource('albums', { path: 'albums' }, function(){
this.resource('album', { path: '/:album_id' }, function() {
this.resource('tracks', { path: 'tracks' }, function(){
this.resource('track', { path: '/:track_id' });
});
});
});
如有任何帮助,我们将不胜感激。
定义您的路线
注意:如果使用this.resource定义资源,并且不提供函数,则不创建隐式resource.index路由。
最好使用Ember的嵌套路由。每条管线都有自己的动态线段。
App.Router.map(function () {
this.resource('albums', { path: '/albums' }, function () {
this.resource('album', { path: ':album_id' }, function () {
this.resource('tracks', { path: 'tracks' }, function () {
this.resource('track', { path: ':track_id' });
});
});
});
});
如果你想在点击相册后立即向用户显示第一首曲目,你可以使用重定向。
App.AlbumRoute = Ember.Route.extend({
afterModel: function (album, transition) {
this.transitionTo('track', {album_id: album.id, track_id: album.tracks[0].id});
},
});
查看有关重定向的文档:http://emberjs.com/guides/routing/redirection/
为了完整起见,索引路由不是必要的,如果你定义了它们,它们只是一种免费的便利,如果你不定义它们,它就不会去给它们。
http://emberjs.jsbin.com/eMofowUQ/1/edit
你可以在一条路径中定义多个蛞蝓,然后直接访问它,只需注意,你只有一个单一资源的单一模型,所以你必须处理它。
http://emberjs.jsbin.com/eMofowUQ/2/edit
我们可能的解决方案是使用以下内容:
App.AlbumsIndexRoute = Ember.Route.extend({
redirect: function(){
this.transitionTo('dashboard');
}
});
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- Ember.js中单个资源中的多个动态段
- 使用DOM注入动态预取资源是否有效或有意义
- 将动态i18n资源从节点传递到翡翠
- 动态资源Angularjs
- Grails资源管道:如何在javascript中动态查找图像url(使用knockout)
- 如何在Chrome中调试动态加载的资源
- 如何从angular服务工厂中创建动态文件资源
- 动态CRM 2011网页资源不显示在Chrome浏览器
- node . js,Express:没有找到动态路由上的静态资源
- 动态资源与剑道调度器
- angular.js$资源作为'服务'具有动态根
- 动态图像资源的Javascript性能
- 动态javascript从web资源