这似乎表明答案是肯定的:
从Ember Pre1到Pre4:每条路线有多个动态段?更新:动态细分的允许语法是什么?
......但我只是想确认一下.
就我而言,作为一个学习练习,我在Ember建立一个日历,每月显示.我需要能够从给定的月份链接到上个月,然后到下个月.
所以我希望能够
{{ linkTo calendar_month year month }}
Run Code Online (Sandbox Code Playgroud)
和
this.transitionTo('calendarMonth', year, month)
Run Code Online (Sandbox Code Playgroud)
想知道如果不使用嵌套资源这是否可行.我可以使用类似的东西:
App.Router.map(function() {
this.resource("year", { path: "calendar/:year" }, function() {
this.resource("calendar_month", { path: "/:month" }, function() {
this.route('index');
});
});
});
Run Code Online (Sandbox Code Playgroud)
...但这涉及从建模角度引入一个可能不需要存在的Year对象,这样我就可以在linkTo中使用它的id
我更愿意设置一个包含两个参数/动态段的路线:
App.Router.map(function() {
this.route('calendar_month', { path: 'calendar/:year/:month'});
});
Run Code Online (Sandbox Code Playgroud)
但我是否正确,这是不可能的?我只是想确保我这样做是最干净,最愚蠢的方式.
换一种方式:
我理解这个概念"如果您的用户界面是嵌套的,那么您的路由应该嵌套",但是,如果我的网址是嵌套的,这并不一定意味着我的界面也会嵌套.所以我想知道:如果我的网址是嵌套的,那么构建相应的嵌套模型总是最佳做法吗?
任何指导/澄清非常感谢.
谢谢,
我不能很好地了解你如何支持永久链接.这可能仅仅是因为emberjs不支持永久链接.
我正在构建一个允许用户选择某些报告的UI,所以在ember中这很简单,你只需要添加一个带有id的路由"报告",这样URL就像这样:
#/reports/10/
Run Code Online (Sandbox Code Playgroud)
我需要的是一些额外的参数也存在于该URL中,例如开始和结束日期以及度量标准类型
#/reports/10/metric/impressions/start/10-08-2013/end/11-08-2013
Run Code Online (Sandbox Code Playgroud)
因此,如果我将这些参数粘贴到浏览器中,则需要选取这些参数,重要的是当用户更改这些设置时,例如通过日期选择器,URL应该更新以反映新参数.
编辑:
以下是基于以下答案的jsbin链接和解决方案.http://jsbin.com/ucanam/703