Emberjs Fixture适配器queryFixture无法正常工作

时间:2015-03-21 17:24:17

标签: ember.js ember-data

我在Emberjs-Data中实现queryFixtures函数时遇到了问题。我有以下代码来定义商店:

App.Store = DS.Store.extend({
revision: 12,
adapter: DS.FixtureAdapter.extend({
    queryFixtures: function(fixtures, query, type) {
        console.log(query);
        console.log(type);
        return fixtures.filter(function(item) {
            for(prop in query) {
                if( item[prop] != query[prop]) {
                    return false;
                }
            }
            return true;
        });
    }
})
});

我的模型看起来像:

FireSurveyApp.User = DS.Model.extend({
  userId: DS.attr('number'),
  username: DS.attr('string'),
  password: DS.attr('string'),
  FirstName: DS.attr('string'),
  LastName: DS.attr('string')
});

当我尝试获取灯具数据时,我使用以下代码:

var returnUser = this.store.find("User",{ username : "Ted"});

该函数将返回undefined,是否有一种不同的方式我应该调用queryFixtures函数?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我能够找到解决方案。将商店适配器设置回DS.FixtureAdapter。

adapter: 'DS.FixtureAdapter'

在ember-data js文件中实现queryFixtures函数,如下所示:

queryFixtures: function(fixtures, query, type) {
var key = Ember.keys(query)[0];
return fixtures.filterBy(key, query[key]);
},

完成这两个步骤后,我能够如上所示查询夹具,没有任何问题。希望这有助于任何遇到同样问题的人。