gpt4 book ai didi

ember.js - 如何用 ember.js 路由器表示 "graph"(不是树)结构?

转载 作者:行者123 更新时间:2023-12-05 01:37:40 25 4
gpt4 key购买 nike

ember 路由器提供了一个很好的资源分支结构(在我的例子中,内容是嵌套在父页面的面板内的资源),例如:

   app
/ \
A B
/ / \
C D E

但我的问题是,在我的两个页面下,我链接回公共(public)内容,例如页面 A 和 B 在面板中都有内容 C:
   app
/ \
A B
\ / \
C D

“C”必须有两条不同的路线,因为我希望能够指定 mysite.com/A/C 不同于 mysite.com/B/C - 两者都会在面板中有“C”,但周围的页面会有所不同。但是 Controller 和在很大程度上 C 的模板在这两个地方都是相同的,.. 那么我将如何让两条不同的路线共享一个共同的 Controller 和模板,(对于奖励积分,我将如何然后通知模板父是什么,以便我可以根据它进行细微的调整?)

最佳答案

如果它们基本相同,但略有不同,我会创建基本 Controller/Route/View 并为每个单独的路由扩展它们。命名空间每条路线略有不同。

App.Router.map(function(){
this.resource('A', function(){
this.resource('AC', function(){

});
});
this.resource('B', function(){
this.resource('BC', function(){

});
...
});
});



App.BaseCRoute = Em.Route.extend({
model: function(){
return { foo: 'bar'};
}
});

App.ACRoute = App.BaseCRoute.extend({
// use the same model hook
});

然后该模式继续用于 Controller 和 View ,共享逻辑存在于基类中,而唯一逻辑存在于扩展类中。如果要共享模板,可以定义要在 View 中使用的模板,或者在路由的 renderTemplate 钩子(Hook)中指定。

关于ember.js - 如何用 ember.js 路由器表示 "graph"(不是树)结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25641174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com