0

我有一个graphHolderController呈现这个模板的:

{{#each controller.graphs}}
  {{view sidePanelView}}
  {{view graph}}
{{/each}}

SidePanelView,我想调用一个方法SidePanelController,但是我发现在SidePanelViewthis.get('controller')返回一个实例graphHolderController。如何在SidePanelControllerfrom上调用方法SidePanelView

4

2 回答 2

2

问题是{{view}}helper 确实渲染了您作为第一个参数传递的视图,但绑定了与父视图中相同的控制器。

graphHolderController如果您需要知道动作来自哪个图表,请将您的方法移动到并将模型作为该动作的参数发送。

于 2013-04-24T21:53:13.860 回答
1

如果您希望视图由其自己的单独控制器管理,我建议使用 render helper: {{render sidePanel}}。这将呈现由和 单例side_panel支持的模板。sidePanelViewsidePanelController

如果sidePanelController需要管理特定模型的状态,请将该模型作为上下文传递:({{render sidePanel this}}其中this表示模型)。这将生成一个新的非单例sidePanelController来管理这个模型。由于您在一个{{each}}块内进行渲染,我猜您想采用这种方法。

于 2013-04-26T14:02:45.420 回答