选择显示年龄

时间:2014-12-08 17:35:50

标签: ember.js

我是新人的余烬。我尝试显示一个包含年龄值的简单选择框。 这是我的控制器:

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;

}

任何人都可以告诉我我该怎么做?

1 个答案:

答案 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()

顺便没有测试代码