我有graphHolderController
呈现此模板:
{{#each controller.graphs}}
{{view sidePanelView}}
{{view graph}}
{{/each}}
在SidePanelView
中,我想在SidePanelController
上调用方法,但我发现在SidePanelView
中,this.get('controller')
会返回graphHolderController
的实例。如何在SidePanelController
上的SidePanelView
上调用方法?
答案 0 :(得分:2)
问题是{{view}}
帮助器会将您传递的视图呈现为第一个参数,但绑定与父视图中相同的控制器。
如果您需要知道操作来自哪个图表,请将方法移至graphHolderController
并将模型作为该操作的参数发送。
答案 1 :(得分:1)
如果您希望视图由其自己的独立控制器管理,我建议使用渲染助手:{{render sidePanel}}
。这将呈现由side_panel
和单身sidePanelView
支持的sidePanelController
模板。
如果sidePanelController
需要管理特定模型的状态,请将该模型作为上下文传递:{{render sidePanel this}}
(其中this
表示模型)。这将生成一个新的非单例sidePanelController
来管理这个模型。由于您在{{each}}
块内进行渲染,我猜您想采用这种方法。