2012-11-03 31 views
6

相當直接的灰燼的問題,(我希望!)。灰燼路由器記錄錯誤:這裏「Ember.CollectionView的內容必須實現Ember.Array」

我有一個簡單的Ember數據設置。一個應用程序有很多版本。這裏是我的應用模型:

App.App = DS.Model.extend({ 
    name: DS.attr('string'), 
    publicKey: DS.attr('string'), 
    versions: DS.hasMany('App.Version', { key: 'version_ids' }) 
}); 

我的路由器是相當簡單:

App.Router = Ember.Router.extend({ 
    location: 'hash', 
    root: Ember.Route.extend({ 
    index: Ember.Route.extend({ 
     route: '/', 
     redirectsTo: 'dashboard' 
    }), 
    dashboard: ..., 
    app: Ember.Route.extend({ 
     route: '/:app_id', 
     connectOutlets: function(router, app) { 
     router.get('applicationController').connectOutlet('appTest', app); 
     }, 

     index: Ember.Route.extend({ 
     route: '/', 
     connectOutlets: function(router) { 
      appTestController = router.get('appTestController'); 
      appTestController.connectOutlet('addCommentOutlet', 'addComment', {}); 
      appTestController.connectOutlet('versions', appTestController.get('content.versions')); 
     } 
     }) 
    }) 
    }) 
}); 

而視圖和控制器是這樣的:

App.AppTestView = Ember.View.extend({ 
    templateName: 'app_test' 
}); 

App.VersionsView = Ember.View.extend({ 
    templateName: 'versions' 
}); 

App.AppTestController = Ember.ObjectController.extend({ 
}); 

App.VersionsController = Ember.ArrayController.extend({ 
}); 

當我運行它,不幸的是我得到的錯誤:an Ember.CollectionView's content must implement Ember.Array. You passed <App.Version:ember519>

有趣的是,如果我在路由器周圍添加[appTestController.get('content.versions')]括號不抱怨,正確地創建了第一個版本的對象的數組。但它似乎不想顯示多個對象。

任何提示?

+0

錯誤是直線前進,它說,App.Version不是一個instanceof陣列,它看起來像你想的對象設置爲集合視圖(其代碼,我不能在這個問題看)的內容屬性,這是類型Ember.Array()...清除我如果我錯了 –

+0

雖然這是有趣的事情。我想發送一個內容數組的內容數組:除了'appTestController.get('content.versions')'返回一個單一的對象,而不是一個數組? –

+0

appTestController是ObjectController還是ArrayController?還有,你如何查詢商店? –

回答

11

最後,它不是模型,視圖對象或控制器!它甚至不是路由器。

這是versions.handlebars。我有如下的我的模板一環內的循環,:

{{#each version in controller}} 
    Version here 
    {{#each comment in version}} 
    {{comment.text}} 
    {{/each}} 
{{/each}} 

我寫錯誤:

each comment in version 

...,我是這麼想寫:

each comment in version.comments 

:)這解釋了錯誤信息。希望這可以幫助別人!