在Ember js中处理来自AJAX调用的数据
我是Ember js的新手,我很难理解为什么这不起作用。本质上,我向服务器发送GET请求,它给我一个数组。我想让那个数组显示它的内容 app.js 当您转到测试页面时,应该触发该操作,并将一个数组返回到模型,在该模型中可以获取数据以填充页面 在我的HTML中,我有:在Ember js中处理来自AJAX调用的数据,ajax,ember.js,ember-data,Ajax,Ember.js,Ember Data,我是Ember js的新手,我很难理解为什么这不起作用。本质上,我向服务器发送GET请求,它给我一个数组。我想让那个数组显示它的内容 app.js 当您转到测试页面时,应该触发该操作,并将一个数组返回到模型,在该模型中可以获取数据以填充页面 在我的HTML中,我有: script type="text/x-handlebars" id="test"> <ul> {{#each item in model}}
script type="text/x-handlebars" id="test">
<ul>
{{#each item in model}}
<li>{{item.ID}}</li>
{{/each}}
</ul>
{{outlet}}
</script>
应用程序运行时没有错误,但当我导航到测试页面时,该页面没有填充任何数据。您的问题是同步代码没有返回任何内容。您的
model
函数返回App.Test.findAll()
,这从来都不是什么。你需要回报一个承诺
findAll: function () {
var result = [];
return new Ember.RSVP.Promise(function (resolve, reject) {
Ember.$.ajax({
type: 'GET',
url: 'myurl',
headers: { 'myheader' },
success: function (data) {
data.dummyArray.forEach(function (item) {
result.push(App.Test.create(item));
});
resolve(result);
},
error: function (request, textStatus, error) {
console.log(error);
reject(error);
}
});
});
}
Object {dummyArray: Array[4]}
dummyArray: Array[4]
0: Object
ID: 1111
1: Object
ID: 1112
2: Object
ID: 1113
3: Object
ID: 1114
findAll: function () {
var result = [];
return new Ember.RSVP.Promise(function (resolve, reject) {
Ember.$.ajax({
type: 'GET',
url: 'myurl',
headers: { 'myheader' },
success: function (data) {
data.dummyArray.forEach(function (item) {
result.push(App.Test.create(item));
});
resolve(result);
},
error: function (request, textStatus, error) {
console.log(error);
reject(error);
}
});
});
}