我有一个Ember应用程序,其中包含一个查看器模板,查看器控制器和一个表示查看器模板模型的项目列表。 该应用程序包含两个主要功能:查看单个项目或比较两个或多个项目。 对于单个视图,它非常简单:我只有一个查看器控制器实例,当用户想要查看另一个项目时,我更改了模型。 对于多个视图,我遇到了一个问题:我有相同查看器控制器的多个实例,对于某些操作,我需要实例将该操作从路径发送到查看器控制器。对于单个视图,我使用controllerFor('name of it')获取控制器的实例,但是当有多个实例时,我不知道如何访问特定的控制器实例。
对于多视图,用户需要使用鼠标选择活动项。在内部,模型中的项具有selected属性,仅当用户单击它时才为true。
一个想法,可能不是好的想法,将控制器实例保留在模型中的每个项目上。通过这种方式,我将查找所选项目,并从该项目中获取控制器实例。另一个想法是在路由上保留所选择的查看器控制器的实例。
您知道使用EmberJS访问控制器的特定实例的最佳方法是什么?
答案 0 :(得分:0)
我希望父控制器为ArrayController
,并为您当前的查看器控制器设置itemController
属性。 http://emberjs.com/api/classes/Ember.ArrayController.html
然后,您可以在模板中使用{{#each}}
呈现它们,如果需要,甚至可以指定视图。