2013-04-24 70 views
0

我有一个graphHolderController呈现此模板:灰烬this.get(“控制器”)返回父控制器

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

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

回答

1

如果你想要一个视图由其自己单独的控制器管理,我建议使用渲染助手:{{render sidePanel}}。这将呈现side_panel模板,由sidePanelView和单例sidePanelController支持。

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

2

问题是{{view}}帮助程序确实将您作为第一个参数传递的视图呈现,但与父视图中绑定了相同的控制器。

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

+0

也许我应该使用'{{control sidePanelView}}'而不是? – 2013-04-24 22:01:55

+1

是的,这也是可能性,但我不想建议现在使用'{{control}}'的未完成的功能。 – Myslik 2013-04-24 22:12:19