我创造了一个Ember,其主要目的是以几种不同的方式展示一系列信息。数据的主要结构如下:项目包含多个组,其中包含多个文档。 组中的文档也具有彼此的父子关系。
我想要创建的这些数据的两个视图是:
这两项都需要在显示信息之前选择项目和组,而第一项还需要选择初始文档。选择项目,群组和文档的此功能也将用于其他数据视图。
因此,我希望在不同的视图中重用一堆路由和模板。
我目前使用此路线图(以及相关的路线和模板)使用第一个视图:
this.resource('RelationshipView', { path: '/relationship'}, function(){
this.resource('Project', { path: '/:project_id'}, function(){
this.resource('Group', { path: '/:group_id'}, function(){
this.resource('Document', { path: '/:doc_id'});
});
});
});
我想添加这个路线图:
this.resource('DocumentTable', { path: '/relationship'}, function(){
this.resource('Project', { path: '/:project_id'}, function(){
this.resource('Group', { path: '/:group_id'});
});
});
我最初尝试更改最后一个资源的名称并为其创建一个新模板。但是我从父资源链接到它时遇到了麻烦。
下一个想法是,如果当前路径是端点,则更改为路由呈现的模板。但是现在我遇到了一个问题,就是进入./RelationshipView/并点击链接转到./RelationshipView/:project_id并最终进入./DocumentTable/:project_id
有没有人有任何想法?
现在似乎我不得不放弃模板和路由重用的想法,这意味着一堆复制粘贴:(
答案 0 :(得分:0)
您应该尝试使用partial template。将实际模板代码放在单独的部分中,然后在Group
模板中调用该部分代码。我发现这比改变路线将呈现的模板更容易理解。
您可能需要重命名资源。您不能拥有同名的多个资源。但是,如果您使用偏好来共享模板,则名称不重要。