Ember JS #each循环的值必须是一个数组

时间:2015-07-05 11:35:13

标签: javascript ember.js ember-cli

余烬js相当新,我遇到了这个错误。

Error: Assertion Failed: The value that #each loops over must be an Array. You passed '[Saab,Volvo,BMW]' (wrapped in (generated favorites controller))

在我的route/favorites.js

export default Ember.Route.extend({
  model: function() {
    // the model is an Array of all of the posts
    // fetched from this url

      var cars = ["Saab", "Volvo", "BMW"];
    return cars;
  }
});

这是我的路线/ favorite.js

中的唯一一行

和我的app / router.js

import Ember from 'ember';
import config from './config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('favorites');
});

export default Router;

和我的favorites.hbs

<h1>{{appName}}</h1>

<ul>
{{#each controller as |item|}}
  <li>{{item}}</li>
{{/each}}
</ul>

我错过了什么?

1 个答案:

答案 0 :(得分:4)

试试这个

{{#each model as |item|}}
  <li>{{item}}</li>
{{/each}}

后台:在当前版本的emberjs中不推荐使用Ember.ArrayController。如果您定义了Ember.ArrayController,那么您使用的代码将起作用,但现在不鼓励这样做。相反,我猜你自己创建了一个Ember.Controller,因为你没有显示一个。因此,您应该使用控制器上的model属性并循环它。