1
我似乎無法指定內部Route.connectOutlets
方法的自定義控制器。 這個想法是我不想爲每個視圖創建空控制器,因爲我不相信這首先是正確的實現。 總之,如果我拿Gordon Hempton's example略在路由器的項目/項目路由代碼Ember.js路由與自定義控制器映射
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
});
}
})
項目選擇停止沒有任何錯誤的工作。 我在代碼中弄錯了什麼,或者有多個控制器視圖的情況只是不受支持?
UPD:
的ItemView控件模板如下:
<script type="text/x-handlebars" data-template-name="item">
<h1>{{title}}</h1>
{{{description}}}
</script>
在'applicationController.connectOutlet'前面加上'applicationController.set('content',item)''在刪除上下文參數之前'沒有幫助。 – achekh
我指的是項目「var item = router.getPath('itemsController.content')。objectAt(context.item_id);」。嘗試將applicationController的插座的控制器設置爲該對象。操作applicationController並連接它自己的插座控制器似乎是你的問題。 – RhinoWalrus
將connectOutlet調用更新爲'applicationController.connectOutlet({viewClass:router.namespace.ItemView,context:item,controller:router.get('itemsController')});'拋出錯誤「對象#