我想呈現一個模板與渲染助手。網頁採取了一個錯誤:錯誤:Ember.CollectionView的內容必須實現Ember.Array。
an Ember.CollectionView's content must implement Ember.Array
http://jsbin.com/ikituj/62/edit
我想呈現一個模板與渲染助手。網頁採取了一個錯誤:錯誤:Ember.CollectionView的內容必須實現Ember.Array。
an Ember.CollectionView's content must implement Ember.Array
http://jsbin.com/ikituj/62/edit
渲染幫手
首先,一個微小的變化。當您撥打{{render "blogcategory" App.BlogCategory}}
時,您應該(可選)將BlogCategory模型的實例作爲第二個參數傳遞給render
,而不是類。查看更多關於render helper
錯誤
所以,改變該行{{render "blogcategory"}}
,我們仍然得到錯誤:
Uncaught Error: assertion failed: an Ember.CollectionView's content must implement Ember.Array. You passed <(generated blogcategory controller):ember326>
這究竟是爲什麼?
這是因爲Ember無法在您的BlogCategoryController上找到。看看錯誤是如何通過(generated blogcategory controller)
傳遞的?這意味着Ember自動生成了一個控制器 - 而不是您定義的BlogCategoryController
(它擴展了ArrayController
和確實實施Ember.Array
)。
當您在您的博客模板中按照慣例調用{{render 'blogcategory'}}
時,Ember將查找名爲Blogcategory
的視圖和名爲BlogcategoryController
的控制器。注意大寫字母 - Ember不知道什麼時候爲你的班級充分利用!因爲找不到它,它會自動生成一個ObjectController,然後當您嘗試在blogcategory模板中使用{{#each}}
進行迭代時,它會發出抱怨。
的修復
解決方案是要麼改變你的渲染調用或控制器名稱,以便它們匹配。因爲您的控制器名稱(BlogCategoryController)已遵循約定,所以我將其更改爲render
。
{{render 'blogcategory'}}
到{{render 'blogCategory'}}
blogcategory
模板id=blogCategory
。
好的,謝謝。但是,爲什麼我得到blogcategory的數據爲空。 – fung
對不起,你能否澄清你的問題? –
當調用{{render'blogcategory'}}時,blogcategory模板爲null,其中blogcategory.model指向哪裏。 http://jsbin.com/ikituj/76/edit – fung