我对Ember很陌生,而且我很遗憾为我的应用找到了更好的方法:
应用: 屏幕水平分割成两部分:
我不确切知道最佳解决方案:
解决方法1:
我不确定这个解决方案,因为PersonRenderedController不是很有用,并且用于"插座连接"。
解决方案2:
我认为解决方案1可能更灵活(如果渲染视图需要控制器)
你能告诉我吗?答案 0 :(得分:1)
解决方案1对我来说似乎更好。与插座一起出去总是一个好主意。在这种情况下,您不必创建PersonRenderedController。您可以使用connectOutketin以满足您的需求。以下段落来自源代码,并展示了如何将此方法与选项哈希一起使用:
* / connectOutlet:function(name,context){ //规范化参数。支持的参数: // // 名称 //名称,上下文 // outletName,name // outletName,name,context //选项 // // options hash具有以下键: // // name:控制器和视图的名称 //使用如果这是通过的,名称 //确定视图和控制器。 // outletName:插座的名称 //填写。默认:'view' // viewClass:要实例化的视图的类 // controller:要传递的控制器实例 //到视图 // context:一个应该成为的对象 //控制器的
content
,因此 //模板的上下文。
通过这种方式,你可以为你的另一个视图重用你的1个控制器:
router.get('applicationController').connectOutlet({
outletname: "right",
viewClass : App.PersonRenderedView,
controller: router.get("personFormController")
})
所以我建议使用更明确的connectOutlet版本,与基于名称匹配的默认方法相比,它可以提供更多控制。