2013-08-01 51 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

相关问题