ember-dev-fixtures错误:"断言失败:来自findAll的响应必须是一个数组,而不是未定义的#34;

时间:2015-02-17 22:58:13

标签: javascript json ember.js ember-data ember-cli

我正在使用名为ember-dev-fixtures的ember插件,当我尝试获取数组时它会抛出一个错误,说它不是一个。配置蓝图的方式如下:

夹具/ 模型的名称的.js

export default [
  /*{
    id: 1, // all fixtures must have an ID
    title: 'test',
    user: 2, // if it is a relation, put the ID of the related record
    createdAt: '2015-01-26T09:22:17.657Z'
  }*/
];

我在网上到处搜索,除了我之外没有其他人似乎对这个插件有问题,所以我想我会发布在这里。它似乎是一个非常直接的插件,当json格式不正确时,Ember通常会抛出该错误。正如你所看到的,我已经将我的json格式化为插件蓝图所需的内容,但我仍然没有运气。下面你将看到我的fixtures文件,它位于root中我的app目录之外,正如它所假设的那样。此外,我已经包括了我的模型和我的路线,因为看起来这两个人抱怨并且有可能是不正确的。这是一个真正的黑暗镜头,因为我假设许多人没有使用这个框架,甚至更少使用这个特定的插件。任何建议都非常欢迎。

夹具/ state.js

export default [
  {id: 1, state: 'Alabama', url: 'http://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Alabama.svg', symbol: 'AL'},
  {id: 2,state: 'Alaska', url: 'https://upload.wikimedia.org/wikipedia/commons/e/e6/Flag_of_Alaska.svg', symbol: 'AK'},
  {id: 3,state: 'Arizona', url: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arizona.svg', symbol: 'AZ'},
  {id: 4,state: 'Arkansas', url: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg', symbol: 'AR'},
  {id: 5,state: 'California', url: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg', symbol: 'CA'},
  {id: 6,state: 'Colorado', url: 'https://upload.wikimedia.org/wikipedia/commons/4/46/Flag_of_Colorado.svg', symbol: 'CO'},
  {id: 7,state: 'Connecticut', url: 'https://upload.wikimedia.org/wikipedia/commons/9/96/Flag_of_Connecticut.svg', symbol: 'CT'},
  {id: 8,state: 'Delaware', url: 'https://upload.wikimedia.org/wikipedia/commons/c/c6/Flag_of_Delaware.svg', symbol: 'DE'}
..........
];

路由/选择-state.js

import Ember from 'ember';

export default Ember.Route.extend({
    model: function () {
      return this.store.find('state');
    }
});

模型/ state.js

import DS from 'ember-data';

export default DS.Model.extend({
  state: DS.attr('string'),
  url: DS.attr('string'),
  symbol: DS.attr('string')
});

2 个答案:

答案 0 :(得分:0)

尝试使用findAll而不是仅查找。由于您使用的是数组,因此只应返回数组,而不是单个对象。

在文件-routes / select-state.js

  return this.store.findAll('state');

答案 1 :(得分:0)

此错误已通过0.0.7修复。问题发布在此处:github.com/huafu/ember-dev-fixtures/issues/1