1

我似乎无法在Route.connectOutlets方法内指定自定义控制器。这个想法是我不想为每个视图创建空控制器,因为我不相信这首先是正确的实现。简而言之,如果我以Gordon Hempton 为例并稍微更新路由器项目/项目路由中的代码

item: Ember.Route.extend({
      route: '/:item_id',
      connectOutlets: function(router, context) {
        var item = router.getPath('itemsController.content').objectAt(context.item_id);
        router.get('itemController').set('content', item);
        router.get('applicationController').connectOutlet('item');
      }
    })

item: Ember.Route.extend({
route: '/:item_id',
connectOutlets: function (router, context) {
    var item = router.getPath('itemsController.content').objectAt(context.item_id);
    var applicationController = router.get('applicationController');
    applicationController.connectOutlet({ 
        viewClass: router.namespace.ItemView, 
        context: item, 
        controller: applicationController 
    });
  }
})

项目选择停止工作,没有任何错误。我是不是在代码中出错了,或者不支持控制器的多个视图的场景?

升级版:

ItemView 模板如下:

<script type="text/x-handlebars" data-template-name="item">
  <h1>{{title}}</h1>
  {{{description}}}
</script>
4

1 回答 1

0

您是否尝试过使用相关项目作为您的控制器?这样您就可以避免创建未使用的空控制器并使您的项目内容可用于您的视图。

applicationController.connectOutlet({ 
    viewClass: router.namespace.ItemView, 
    controller: item
});
于 2012-11-02T14:30:38.293 回答