2013-08-01 80 views

回答

1

渲染幫手

首先,一個微小的變化。當您撥打{{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

  1. 我改變{{render 'blogcategory'}}{{render 'blogCategory'}}
  2. 我改了ID的blogcategory模板id=blogCategory

在這裏看到: http://jsbin.com/ikituj/66/edit

+0

好的,謝謝。但是,爲什麼我得到blogcategory的數據爲空。 – fung

+0

對不起,你能否澄清你的問題? –

+0

當調用{{render'blogcategory'}}時,blogcategory模板爲null,其中blogcategory.model指向哪裏。 http://jsbin.com/ikituj/76/edit – fung

相關問題