我想用渲染助手渲染模板。页面出现错误:
Ember.CollectionView 的内容必须实现 Ember.Array
渲染助手
首先,一个小改动。当您调用 时{{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) 已经遵循约定。
{{render 'blogcategory'}}
改为{{render 'blogCategory'}}
blogcategory
我将模板上的 id 更改为id=blogCategory
.见这里:http: //jsbin.com/ikituj/66/edit