Emberjs模型渲染

时间:2014-05-15 04:23:30

标签: javascript ember.js

我刚开始学习emberjs并希望显示模型中的数据列表。我的app.js:

var h= [{
name: "Hi",
},
{
name: "Hello",
}
];
App.ListsRoute = Ember.Route.extend({
model: function(){
    return h;
}
});

我的相应清单把手:

<div id="list">
    <ul>
        {{#each}}
        <li>
        {{ name }}</li>
        {{/each}}
    </ul>
</div>

我收到错误:

Error: Assertion Failed: The value that #each loops over must be an Array. You passed (generated lists controller)

我可以做些什么来展示它们?

1 个答案:

答案 0 :(得分:1)

#each想要遍历列表。由于您没有给它一个参数,因此默认尝试迭代ListsController。不幸的是,由于您没有定义它,因此控制器是基于普通Ember.Controller自动生成的。因此,错误。

解决此问题的两种方法:

1)将ListsController变为ArrayController

App.ListsController = Ember.ArrayController.extend({});

2)告诉#each定位您的模型而不是控制器。

<div id="list">
    <ul>
        {{#each model}}
            <li>{{ name }}</li>
        {{/each}}
    </ul>
</div>