Javascript 断言失败:每个循环所覆盖的值必须是数组错误。我做错了什么?

Javascript 断言失败:每个循环所覆盖的值必须是数组错误。我做错了什么?,javascript,arrays,ember.js,todomvc,Javascript,Arrays,Ember.js,Todomvc,我正在学习Ember的TodoMVC教程,我被卡住了。基本上,我定义了两个控制器。这是todos.js import Ember from "ember"; export default Ember.ArrayController.extend({ actions:{ createTodo: function(){ var title = this.get("newTitle"); if(!title){

我正在学习Ember的TodoMVC教程,我被卡住了。基本上,我定义了两个控制器。这是todos.js

import Ember from "ember";

export default Ember.ArrayController.extend({
    actions:{
        createTodo: function(){
            var title = this.get("newTitle");

            if(!title){
                return false;
            }
            if(!title.trim()){
                return;
            }

            var todo = this.store.createRecord("todo", {
                title: title,
                isCompleted: false
            });

            // Clear text field
            this.set('newTitle', '');

            todo.save();
        }
    }
})
这是todo.js

import Ember from "ember"

export default Ember.ObjectController.extend({
    isCompleted: function(key, value){
        var model = this.get("model");

        if(value === undefined){
            return model.get("isCompleted");
        } else {
            model.set('isCompleted', value);
            model.save();
            return value;
        }
    }.property('model','model.isCompleted')
});
这里是routes/todos.js

import Ember from "ember";

export default Ember.Route.extend({
    model: function() {
        return this.store.find("todo");
    }
});
最后,还定义了todos.hbs

<ul id="todo-list">
    {{#each todo in model itemController="todo"}}
        <li {{bind-attr class="todo.isCompleted:completed"}}>
            {{input 
            type="checkbox"
            class="toggle"
            checked=todo.isCompleted
            }}
            <label>{{todo.title}}</label><button class="destroy"></button>
        </li>
    {{/each}}
</ul>
    {{{#模型itemController=“todo”}中的每个todo {{输入 type=“复选框” class=“切换” 选中=todo.isCompleted }} {{todo.title} {{/每个}}
一切看起来都很好,但控制台中出现以下错误:

未捕获错误:断言失败:每个循环必须覆盖的值 是一个数组。你通过了TOMVC考试-embercli@controller:数组:,但它 应该是ArrayController

我做错了什么?

在Ember GitHub页面上。这似乎是一个错误与余烬,我不知道有一个解决办法。但是,它确实提到可以使用组件而不是数组和项控制器(这是首选方法)。也许你可以看看这期杂志上的帖子


如果找到解决方法/修复,我会回来更新此答案。现在,我想说的是尽量避免使用阵列控制器(即使教程中有)/

根据,从package.json中删除ember disable proxy controllers似乎可以解决这个问题。

您可以发布您的
todos
路线吗?todos.js路线发布:)我没有看到任何明显的错误。你是偶然发现的吗?我刚刚在config/environment.js中添加了以下内容:EmberENV:{FEATURES:{EXTEND_prototype:true}}。同样的结果。以下是完整的environment.js文件:出于好奇,您是否可以尝试更改控制器,使其从
控制器扩展到
阵列控制器
?另外,您是否介意发布您正在使用的Ember版本?好吧,偶尔知道这是框架的错,而不是您的错,这很好:)