【发布时间】:2015-08-07 11:29:34
【问题描述】:
在不共享父资源/路由的资源/路由之间共享模型数据的最佳方式(Ember 方式)是什么?
详情:
我有 2 个顶级资源(resource1 和 resource2),它们的模型钩子通过 Ajax 检索几乎相同的数据,因此它们的模型钩子代码看起来也几乎相同,即不是很干燥。不同之处在于他们各自处理这些数据的方式。
目标:保留 resource1 和 resource2 顶级资源(或至少让它们的 URL 看起来像是顶级资源),让它们共享一些模型数据,而无需复制模型挂钩代码。
资源/路由定义:
App.Router.map(function () {
...
this.resource("resource1", function () {
this.route("routeA");
this.route("routeB");
});
this.resource("resource2", function () {
this.route("routeA");
this.route("routeB");
});
...
}
所需的网址:
example.com/#/resource1/routeA
example.com/#/resource1/routeB
example.com/#/resource2/routeA
example.com/#/resource2/routeB
不 [嵌套在公共资源中] 像这样:
example.com/#/resource0/resource1/...
example.com/#/resource0/resource2/...
提前致谢!
【问题讨论】:
-
用通用模型钩子写一个mixin。使 resource1 和 resource2 路由从它延伸出来。
-
感谢您的回复,祝福。我考虑过使用 mixin,但决定反对它——mixin 并没有真正删除重复项,它只是隐藏了它。
标签: ember.js