【发布时间】:2014-07-01 20:52:10
【问题描述】:
我正在使用 Ruby on Rails API 服务器学习 Ember.js。我已经完成了所有设置和工作的路线、模板和模型 - 但是一旦从 API 服务器加载数据,模板就永远不会重新呈现。我没有收到任何错误消息,并且通过查看 Ember 检查器,我知道正在加载客户。
客户列表应该显示在start之后
正在从 API 服务器正确加载客户列表:
路由器
// javacripts/router.js
App.Router.map(function() {
this.resource('customers', { path: "/" });
});
客户路线
// javascripts/routes/customer_routes.js
App.CustomersRoute = Ember.Route.extend({
model: function() {
return this.store.find('customer');
},
renderTemplate: function() {
this.render('customers/index');
}
});
客户模型
// javascripts/models/customer.js
App.Customer = DS.Model.extend({
name: DS.attr('string')
});
客户索引模板
// javacripts/templates/customers/index.js.handlebars
<ul>
<li>start</li>
{{#each customers}}
<li>{{name}}</li>
{{/each}}
</ul>
商店
// javacripts/store.js
App.ApplicationAdapter = DS.ActiveModelAdapter.extend({
namespace: 'api/v1'
});
【问题讨论】:
-
是否实际加载了任何内容,例如您的应用程序模板文件?
-
@ryan - 看起来一切都加载得很好。
application.js.handlebars和index.js.handlebars都在渲染中。但索引中的{{#each}}循环始终为空 -
我想知道您使用的扩展名很奇怪。通常文件只是用
.handlebars或.hbs扩展我从未真正见过.js.handlebars。 -
@ryan 自从他们使用 Ember 和 Rails 以来,我一直在寻找话语中的示例。这就是他们命名模板的方式,所以我也这样做了。 source
标签: javascript ember.js handlebars.js