0

我想同时多次显示某个控制器/视图对。问题是路由改变了当前控制器上的模型,而不是创建一个新的。

是否可以强制路由实例化新控制器?我试过弄乱 Ember.Route 中的回调和钩子,但我找不到任何方法让它表现得像这样。

4

1 回答 1

1

如果您想同时显示多个模型,似乎将路径指向一个更改的模型并不能很好地映射到您想要做的事情。除非您使用嵌套路由,否则路由器的设计目的不是为显示添加额外的视图。您可以尝试覆盖路由中的renderTemplate钩子render()并用于指定使用哪个控制器,但这无助于同时显示多个控制器/视图对。

相反,我会尝试使用其中一种方法来指定自定义控制器。当您有一组要显示的东西时,最简单的方法是使用模板中的#each帮助程序。

{{#each product in products itemController='myControllerName'}}

如果您想指定自定义视图类,您也可以这样做。

{{#each product in products itemController='myControllerName' itemViewClass='App.MyView'}}

根据您要执行的操作,获取每次获取新实例的上下文的另一种方法是创建一个组件。但是,这更重,您可能需要重构一些代码,将控制器逻辑移动到组件中。

于 2013-08-25T14:02:05.110 回答