在不共享父资源/路由的资源/路由之间共享模型数据的最佳方式(Ember方式)是什么?
详细说明:
我有2个顶级资源(resource1和resource2),其模型钩子通过Ajax检索几乎相同的数据,因此它们的模型钩子代码看起来几乎相同,即不是很干。不同之处在于他们各自对数据的处理方式。
目标:保留resource1和resource2顶级资源(或者至少让他们的网址看起来像是顶级资源),让他们共享一些模型数据而不重复模型钩子代码。
资源/路线定义:
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
NOT [嵌套在公共资源中],如下所示:
example.com/#/resource0/resource1/...
example.com/#/resource0/resource2/...
提前致谢!
答案 0 :(得分:0)
这对我有用:
App.Router.map(function () {
...
this.resource("resource0", { path: "/" }, function () {
this.resource("resource1", function () {
this.route("routeA");
this.route("routeB");
});
this.resource("resource2", function () {
this.route("routeA");
this.route("routeB");
});
}
...
}
指定resource0' /"基本上删除" resource0"从URL路径,使resource1和资源2看起来像顶级资源。然后我将resource1和resource 2中的任何重复模型钩子代码分解为resource0的模型钩子。