0

我想用渲染助手渲染模板。页面出现错误:

Ember.CollectionView 的内容必须实现 Ember.Array

http://jsbin.com/ikituj/62/edit

4

1 回答 1

1

渲染助手

首先,一个小改动。当您调用 时{{render "blogcategory" App.BlogCategory}},您应该(可选地)将 BlogCategory 模型的实例作为第二个参数传递给render,而不是。查看更多关于渲染助手的信息

错误

因此,将该行更改为{{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,然后当你尝试{{#each}}在 blogcategory 模板中迭代它时它会报错。

修复

解决方案是更改渲染调用或控制器名称以使其匹配。我将调用更改为,render因为您的控制器名称 (BlogCategoryController) 已经遵循约定。

  1. {{render 'blogcategory'}}改为{{render 'blogCategory'}}
  2. blogcategory我将模板上的 id 更改为id=blogCategory.

见这里:http: //jsbin.com/ikituj/66/edit

于 2013-08-01T05:21:03.193 回答