【发布时间】:2014-03-03 10:22:11
【问题描述】:
更新
好吧,真幸运……这现在是默认行为as of Ember 1.5。耶!
原问题
在我看来确实很直观,但在 Ember 路由器中并非如此。我有一堆resources,其中大部分有一个index 路由,我希望模型与资源路由的模型相同——即使用动态段按约定选择的对象。例如:
this.resource("chargeRule", { path: "/chargeRule/:chargeRule_id" }, function(){});
我将使用嵌套,所以我不能在我的 chargeRule 模板 中做所有事情,因为该模板将只有 {{outlet}}(有点像 @987654322 @)。所以我的index 路由在大多数情况下将是我的只读视图,我将有一个edit 子路由来更新需要的模型。
让我烦恼的是,index 路由(以及任何其他子路由)的默认模型是:NOTHING!多田! Null 我认为,尽管它可能是空字符串或其他东西。所以,我现在必须创建一堆看起来像这样的小Ember.Route 子类:
App.ChargeRuleIndexRoute = Ember.Route.extend({
model: function() {
return this.modelFor('chargeRule');
}
});
为每个不同的模型类/路线重复令人作呕的事情。真的,然后大约加倍,因为我希望 /index 和 /edit 路由相同,也许更多。就个人而言,我会认为任何子路由的 default 模型(因为无论如何您都可以覆盖它)应该是父路由的模型而不是 nothing,但我d 有兴趣解释为什么不这样做。
但我的问题是,谁能想出一种方法让我在我的应用程序中实现我所描述的默认行为?我可以reopen 吗?所以我没有十几个或更多样板的 5 行路线对象?
编辑
我可能应该提一下,我知道我的抱怨可能看起来微不足道,但我必须创建这么多路由子类的事实也意味着我应该为每个类创建单独的文件......对吗?以便未来的开发人员可以轻松找到给定类的定义位置?我知道这不是绝对的,但我认为这是一个很好的做法,并且会要求我制作与小类一样多的小 JS 文件……这就是为什么我开始考虑更改默认行为的原因。不过我会接受 cmets 的。
【问题讨论】:
标签: ember.js ember-router