这是交易:我正在尝试从 php 脚本中获取数据,创建 javascript 对象并将它们分配给 ember 数据存储,然后调用 ember find() 函数来显示数据。
数据存储:
App.Images = DS.Model.extend({
name: DS.attr('string'),
imageThumb: DS.attr('string'),
imageFull: DS.attr('string'),
});
//Have to do this, otherwise it doesn't work
App.Images.FIXTURES = [];
这是加载数据的主要功能......首先,我什至不确定这是否是正确的方法。但是,它确实有效,但是……我严重怀疑它是否应该是那样的。在调用 $.each 函数之前注意注释!
App.MainRoute = Ember.Route.extend({
model: function(){
$.ajax({
type: "POST",
url: "dataDao.php?f=getAll",
datatype: "json",
success: function(data){
//I WANT TO CALL THE 'CLEAR DATA STORE' HERE!
$.each(JSON.parse(data), function(index, value) {
App.Images.createRecord(
{
id: value['id'],
name: value['name'],
imageThumb: value['imageThumb'],
imageFull: value['imageFull'],
});
});
},
error: function(err){
alert('error!' + JSON.stringify(err));
}
});
return App.Images.find();
}
});
所以,首先,我什至不确定这是否是 ember 的使用方式。
其次,ajax 不应该是异步的吗?为什么在调用return App.Images.find()之前等待成功函数完成?不应该在成功函数完成之前调用 return 并且显示应该是空的吗?
第三(也是最后):如何在创建新对象之前清除数据存储?我的结果是重复的,或者更确切地说,我会继续将相同的东西添加到现有的数据存储中。
谢谢您的帮助!