我想呈现一个模板与渲染助手。网页采取了一个错误:错误: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