我試圖使用Ember來查詢JSON API,創建對象數據,然後通過我的Handlebars模板中的對象進行循環。我可以記錄response
以及categories
數組,我看到它們都被創建。我一直在我的模板中找到「找不到類別」。從JSON響應創建Ember對象並使用把手顯示
app.js:
App = Ember.Application.create({
LOG_TRANSITIONS: true
});
App.Category = Ember.Object.extend();
App.Category.reopenClass({
list: function() {
$.getJSON("/api_url").then(function(response) {
var categories = [];
for(var i = 0; i < response.length; i++) {
// create a Category with a "name" property
categories.push(App.Category.create({ name: response[i]}));
}
// see screenshot for what this looks like logged to console
return categories;
});
}
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.Category.list();
}
});
的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My App</title>
</head>
<body>
<script type="text/x-handlebars" data-template-name="application">
<h1>My App</h1>
<div class="content">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="index">
<ul>
{{#each category}}
<li>Name: {{name}}</li>
{{else}}
<li>No categories found</li>
{{/each}}
</ul>
</script>
<script src="/kory/js/libs/jquery-1.10.2.js"></script>
<script src="/kory/js/libs/handlebars-1.1.2.js"></script>
<script src="/kory/js/libs/ember-1.5.0.js"></script>
<script src="/kory/js/app.js"></script>
</body>
</html>
例JSON響應:
[
"Foo",
"Bar",
"Meow",
"Woof"
]
卵石登錄categories
陣列的nshot:
在您的模板中,您是否嘗試過簡單地使用'{{#each}}'而不是'{{#each category}}'? –
剛剛嘗試過,我得到這個錯誤:'未捕獲的錯誤:斷言失敗:#each循環的值必須是一個數組。你通過了(生成的索引控制器)' – kmm
檢查'App.Categories'裏面的'list'方法。此方法沒有返回語句,因此如果您調用它,則不會返回任何內容。 – Myslik