[英]Get array of elements with Ember.js
我有這個Ajax和Ember.js的電話
$.ajax({
url: '../data',
type: 'GET',
cache: false,
dataType: 'json',
data: ({
func: "getAllLists"
}),
success: function(data) {
console.log('DEBUG: GET Data OK');
var list = [
{
uid: data[0].uid
}
];
App.ListRoute = Ember.Route.extend({
model: function () {
return list;
}
});
},
error: function() {
console.log('DEBUG: GET Data Failed');
}
});
這是擔
{{#each}}
<li>
{{#link-to 'project' this}}
{{title}}
{{/link-to}}
</li>
{{/each}}
我有一個錯誤: Assertion Failed: The value that #each loops over must be an Array. You passed (generated list controller)
Assertion Failed: The value that #each loops over must be an Array. You passed (generated list controller)
。 我在做什么錯?
您需要在App.ListRoute
內進行$.ajax()
調用,而不是相反:
App.ListRoute = Ember.Route.extend({
model: function () {
list = $.ajax({
url: '../data',
type: 'GET',
cache: false,
dataType: 'json',
data: ({
func: "getAllLists"
}),
}).then( function(data) {
console.log('DEBUG: GET Data OK');
var list = [{
uid: data[0].uid
}];
},);
return list;
}
});
請注意,直到ajax調用完成,Ember才會進入路由(因為它將等待then()
解析。請訪問http://emberjs.com/guides/routing/asynchronous-routing/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.