加载json时出现Ember.js和Ember数据错误
Ember.js and ember-data error loading json
我收到错误
Uncaught TypeError: Object #<Object> has no method 'map'
当使用ember数据尝试从我的api加载json时。
App = Ember.Application.create({});
App.Student = DS.Model.extend({
primaryKey: 's_id',
s_id: DS.attr('integer'),
surname: DS.attr('string')
});
App.Student.reopenClass({
url: 'api/student.php'
})
App.adapter = DS.Adapter.create({
findAll: function(store, type) {
var url = type.url;
console.log(type.url);
jQuery.getJSON(url, function(data){
store.loadMany(type, data);
});
}
});
App.store = DS.Store.create({
revision: 4,
adapter: App.adapter
});
App.students = App.store.findAll(App.Student);
我已经确定JSON是正确的格式,但没有用;有什么想法吗?
感谢
我发现,当使用自定义适配器时,最好在App.Adapter中定义所有方法(findAll、find、createRecord、createRecords等),以避免抛出错误。你可能会认为,逐步实现这些方法是控制应用程序中发生的事情的最佳方式,但如果你这样做,默认适配器会跳进来。
还要检查json响应的正确格式
我想我知道发生了什么——DS.RestAdapter确实假设作为json根的复数形式在其实现中findAll,但如果你需要这个,你应该模仿这个实现,或者只使用/扩展内置的。
因为json的根是命名的,所以我可以调用data.student来正确地调用loadMany。
相关文章:
- 强制模板刷新ember.js
- Ember.js-接口状态应该存储在哪里
- Uncaught TypeError:undefined不是函数-ember js
- 手动触发ember.js中的属性更改
- Ember.js(2.5.0)如何设置嵌套对象值
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- ember-js组件初始化不同的函数
- Ember.js:liverload服务器不工作
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- Ember.js-如何使用Ember.Router实现所选项目
- 如何将Ember.js控制器连接到视图
- ember.js:转换到相同的路由会产生堆栈溢出问题
- 获取ember JS中的当前URL
- 重定向不带哈希的URL-Ember.JS
- 加载Ember.js后调用函数
- Ember.js(v2.4.5)组件不是't错过第二个动作
- Ember JS属性访问器
- Ember.js and Pagination
- 加载json时出现Ember.js和Ember数据错误
- Ember.js:接受的子组件和父组件之间通信的最佳实践