我刚开始使用ember.js。我的标记代码是
<script type="text/x-handlebars" data-template-name="home">
<h1>Names: </h1>
{{#each home in App.HomeController.content}}
<h1>Name: </h1>
{{home.name}}<br />
{{/each}}
</script>
我的javascript代码是
App = Ember.Application.create();
App.Router.map(function() {
this.route("home", {
path: "/"
});
});
/*
* HomeController
*/
App.HomeController = Ember.ArrayController.extend({
content: [],
templateName: 'home',
init: function(){
var self = this;
$.ajax({
url: 'response.php',
dataType: 'JSON',
type: 'POST',
success: function(res){
self.set('content', res);
},
error: function(){
}
});
}
})
但似乎我不能打印名字。我不能迭代&amp;打印名称。任何人都可以帮助我。
由于
答案 0 :(得分:0)
您只需要提供controller
,而不是完整路径(App.HomeController.content
):
{{#each home in controller}}
<h1>Name: </h1>
{{home.name}}<br />
{{/each}}
原因:
Ember.ArrayController.extend()
时,您创建了类,而不是实例。 Ember会自动为您创建实例。controller
变量指向与模板同名的控制器。在你的情况下:
home
App.HomeController
此外,没有必要指向ArrayController
的{{1}},因为它只是一个代理,因此它是迭代的默认上下文。