2017-04-26 88 views
0

我无法使Ember的queryRecord正常工作。我试图从服务器获取一个站点配置。Ember模型查找记录

//app/routes/application.js

model: function(){ 
    return this.get('store').queryRecord('config',{}).then(function(config) { 
    console.log(config.get('appname')); 
    }); 
} 

//app/adapters/config.js

import DS from "ember-data"; 
import ENV from './../config/environment'; 

export default DS.Adapter.extend({ 
    queryRecord(modelName, query) { 
     return Ember.$.getJSON(ENV.APP.apiFull + 'config'); 
    } 
}); 

//app/serializers/applications.js

import DS from 'ember-data'; 

export default DS.RESTSerializer.extend({ 
    keyForAttribute: function(attr, method) { 
    return Ember.String.underscore(attr).toUpperCase(); 
    } 
}); 

//从服务器AJAX返回的JSON

{"config":{"id":1,"environment": "development", "appname":"Sample App Name"}} 

// app/routes/application中的console.log语句返回undefined。这一切似乎都与2.9版的Ember文档相匹配。我做错了什么?

+0

边注:不要忘记返回模型钩子的结果。 – kumkanillam

+0

我在模型钩子中添加了返回值,但问题陈述保持不变。 – user6041966

+1

Ajax响应看起来是REST格式,所以adapters/config.js文件应该扩展'DS.RESTAdapter' -https://emberjs.com/api/data/classes/DS.RESTAdapter.html#method_queryRecord – kumkanillam

回答

0

@Lux,感谢指向我的序列化器。这导致我查看了模型成员名称,并发现我在模型中强调了他们,但不是来自服务器的JSON。