我是新人的余烬。我尝试显示一个包含年龄值的简单选择框。 这是我的控制器:
App.HomeController = Ember.ObjectController.extend({
ages : function() {
var ages = [];
for(var i = 18; i <= 99; i++) {
ages.push(i);
}
return ages;
}
});
这是我的观点:
<div class="container" id="main">
<div class="row">
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="name" class="col-xs-2 control-label">Name : </label>
<div class="col-xs-10">
{{input type="text" name="name" value=firstname autofocus="true"}}
</div>
</div>
<div class="form-group">
<label for="age" class="col-xs-2 control-label">Age : </label>
<div class="col-xs-10">
{{view "select" content=ages}}
</div>
</div>
</form>
</div>
刷新浏览器时出现此错误:
Error: Assertion Failed: The value that #each loops over must be an Array. You passed function () {
var ages = [];
for(var i = 18; i <= 99; i++) {
ages.push(i);
}
return ages;
}
任何人都可以告诉我我该怎么做?
答案 0 :(得分:1)
您的ages
功能由把手解决。如果你想将它作为一个属性添加到你的函数中,那么你可以在把手中使用它,我也建议你使用Ember.A()
而不是javascript数组。
ages : function() {
var ages = Ember.A();
for(var i = 18; i <= 99; i++) {
ages.pushObject(i);
}
return ages;
}.property()
顺便没有测试代码