我知道Ember的咒语首先是URL,而URL应该是页面内容的序列化,但我有一个场景,我想为一个组件/页面创建一个路径,它将存在于一个模态中,并且可以从整个网站的各个地方。我总是希望这个URL代表资源的实际路由,如果资源碰巧嵌套在另一个路由中,则不会改变。
类似的例子是Pinterest。当您查看引脚的馈送时,您处于root
路线上。您也可以搜索引脚,然后将您定向到/search/pins
路线。
从这两个路径中,您可以单击一个引脚,该引脚将以模态/叠加方式打开它,并将URL更改为引脚的url。由于您可以查看来自站点不同区域的引脚,因此叠加层背后的背景将是各种路径,具体取决于您单击引脚的位置,而不是路径的序列化版本。
Ember可以使用这种功能吗?如果是这样,任何资源/提示要审查?
- ac。
答案 0 :(得分:1)
This SO Question可能是一个指针,我在使用路由中activate
挂钩内的render方法之前已经这样做了。
因此,当您输入指定路线时,我的模态模板会注入到命名的outlet
(例如{{outlet 'modal'}}
)中。
以下是我正在处理的项目中描述的方法示例。
在父路由中,我有一个名为openEditModal
的动作(在我的情况下,我做了一些逻辑,比如获取按下编辑按钮的视图模型,并在编辑路径上设置它控制器)。这action
最终transitionTo
编辑路线。
openEditModal: function(eventModel) {
// Do any logic here like setting the model for the modal
// Transition to the edit route
this.transitionTo('patient.events.edit');
},
所以当edit
路线有效时:
activate: function() {
// render the template in the 'modal' outlet
this.render('path/to/modal/template', {
controller: 'patient.events.edit', // The controller to use for the injected template
view: 'patient.events.edit', // The view to use for the injected template
into: 'patient.events', // The parent template to inject this template into
outlet: 'modal' // The name of the outlet in that parent template
});
},