Ember.js 通过与EmberData和rails API的简单关系嵌套路由?
我想我有余烬的嵌套资源(主细节)。但我正试图将巢穴更深一层,但通过Ember.js 通过与EmberData和rails API的简单关系嵌套路由?,ember.js,ember-router,Ember.js,Ember Router,我想我有余烬的嵌套资源(主细节)。但我正试图将巢穴更深一层,但通过在我的数据中有许多关系。我正在使用EmberData和Rails作为API,我相信这是按照预期设置和工作的。但在我的模板和路由器中嵌套一个层次让我感到困惑,我似乎找不到这样的例子 这是我当前的路由器(我想使用RC1): 产生: /#/uploads/1 /#/collections/1 很好,太棒了。但是在我的应用程序中,集合有很多上传,所以我尝试访问这个url(主详细信息): id:1是集合\u id(它包含一组上载,这是 (
在我的数据中有许多关系。我正在使用EmberData和Rails作为API,我相信这是按照预期设置和工作的。但在我的模板和路由器中嵌套一个层次让我感到困惑,我似乎找不到这样的例子
这是我当前的路由器(我想使用RC1):
产生:
/#/uploads/1
/#/collections/1
很好,太棒了。但是在我的应用程序中,集合有很多上传,所以我尝试访问这个url(主详细信息):
id:1是集合\u id
(它包含一组上载,这是
(效果很好)
id:2作为一个上传id
(我如何做到这一点?)
我的路由器会是什么样子?这项工作还需要什么
编辑:我正在添加我的收藏模板,该模板显示属于单个收藏的上传内容并链接到这些上传内容。基本上,这会正确地显示关联的上载,但链接会将我带回#/uploads/1,而不是#/collections/1/2(2是集合1中的上载)。很明显,我的链接是错误的,但我怀疑我真正的问题是我把收藏的上传不当了
模板/collection.js.hbs
<aside class="span8">
<header>
<h4>Collection: {{title}}</h4>
</header>
<ul class="thumbnails">
{{#each upload in uploads}}
<li class="span3">
<aside class="thumbnail">
{{#linkTo 'upload' this}}<img {{bindAttr src="upload.url"}} alt="{{upload.title}}">{{/linkTo}}
{{title}}
</aside>
</li>
{{/each}}
</ul>
</aside>
<article class="span4">
{{outlet}}
</article>
集合:{{title}}
{{{#每次上传时上传}
-
{{{#linkTo'upload'this}{{{/linkTo}}
{{title}}
{{/每个}}
{{outlet}}
你必须让你的路线集合。集合
成为拥有此类url的资源。为此:
EmberGallery.Router.map(function() {
this.resource('uploads', function() {
this.resource('upload', { path: ':upload_id' });
});
this.resource('collections', function() {
this.resource(
'collection',
{ path: ':collection_id' },
function() {
this.route('upload', { path: ':upload_id' });
}
);
this.route('new');
});
});
您将隐式创建路由collection.index
(而不是collections.collection.index
)。
url/collections/1/2
将指向路径集合。上传您好,谢谢。这似乎有道理。不幸的是,我似乎有其他问题与我的模板命名,也许我的控制器的使用,因为我不能让这个工作。。。我要将我的收藏模板添加到我的原始帖子中。
<aside class="span8">
<header>
<h4>Collection: {{title}}</h4>
</header>
<ul class="thumbnails">
{{#each upload in uploads}}
<li class="span3">
<aside class="thumbnail">
{{#linkTo 'upload' this}}<img {{bindAttr src="upload.url"}} alt="{{upload.title}}">{{/linkTo}}
{{title}}
</aside>
</li>
{{/each}}
</ul>
</aside>
<article class="span4">
{{outlet}}
</article>
EmberGallery.Router.map(function() {
this.resource('uploads', function() {
this.resource('upload', { path: ':upload_id' });
});
this.resource('collections', function() {
this.resource(
'collection',
{ path: ':collection_id' },
function() {
this.route('upload', { path: ':upload_id' });
}
);
this.route('new');
});
});