2

我有一个模板,它呈现另外两个模板dashboard/panelOnedashboard/panelTwo. 它呈现每个模板,但数据永远不会绑定到控制器。我假设 renderTemplate 正在跳过执行此操作的路线。您会注意到,如果单击“转到第一面板”或“转到第二面板”链接之一并单击后退按钮,则数据现在已填充到仪表板上。

我正在使用 Master 的 EmberJS:

版本:v1.0.0-pre.2-396-gddb0951

上次提交:ddb0951 (2013-01-14 10:16:46 -0800)

如何将数据放入面板的控制器并填充数据,使其显示在仪表板上,而无需先进入每个面板?

这是我工作的 JSFiddle。

4

2 回答 2

3

问题是您依赖面板路由为您生成控制器。但是,这个控制器是惰性创建的,内容只能通过该model函数从面板路由中设置。相反,您应该只声​​明控制器并提前在其上设置内容。见http://jsfiddle.net/yrsGu/49/

于 2013-01-15T22:38:27.500 回答
0

到目前为止,我还没有找到一个我认为应该的解决方案。为了避免为我的面板制作控制器和路由,我需要保留 Route 定义,然后在 DashboardIndexRoute 中定义 renderTemplates 的位置,我以这种方式定义它:

this.render('dashboard/panelOne', {
    into: 'dashboard.index',
    outlet: 'panelOne',
    controller: this.controllerFor('dashboard/panelOne', App.Sites.find())
});

这将创建控制器并为我注入模型。这也允许定义模板将采用的模型。因此,如果我想制作更多模板(因为我喜欢模板)并重用面板模板但使用不同的模型,这将成为可能。

以彼得的回答为例。它假定每次调用面板时模型都是相同的。在某些情况下可能会起作用,如果模型相同并且面板在多个位置重复使用,则效果会更好。

这是最新的 JSFiddle。

我暂时保留这个问题,看看其他人是否有其他解决方案。

于 2013-01-16T00:15:34.717 回答