【发布时间】:2014-04-14 16:29:00
【问题描述】:
我第一次尝试使用 RESTful 后端创建 Ember.js 应用程序。我一直在使用从我的服务器呈现的 HTML,因此我是 ember 的新手。 我有一个查询要根据所有者 ID 获取餐厅,然后在标题栏中显示名称。
LiveKitchen.RestaurantController = Ember.ObjectController.extend({
needs : 'login'
});
LiveKitchen.RestaurantRoute = Ember.Route.extend({
model: function() {
console.log(this.controllerFor('login').get('user_id'));
console.log('Fetching Restaurants ' + this.store.find('restaurant', {owner_id : this.controllerFor('login').get('user_id')}));
var res = this.store.find('restaurant', {owner_id : this.controllerFor('login').get('user_id')});
// restaurant.tables = this.store.find('table', {restaurant_id : restaurant.mongo_id});
console.log('Restaurant ' + res);
return res.objectAt(0);
// return restaurant;
}
});
我已经使用调试器验证了响应,并看到 json 数据返回正确。但是我的模板
<script type="text/x-handlebars" data-template-name="restaurant">
<small>
<i class="icon-leaf"></i>
{{name}}
</small>
</script>
页面中没有打印名称。
您能否帮助我了解如何调试它并找出数据未呈现的原因?由于没有错误,我无法找出下一步要采取的步骤。
【问题讨论】:
-
this.store.find('restaurant')是否返回多个餐厅模型实例? -
最初我以 {"restaurant" : { "name" : "SomeName", ...}} 的形式返回一家餐厅,但它不起作用。所以我认为它可能期待很多并开始返回 {"restaurants" : [{"name" : "SomeName:,...}]}
-
我尝试了其他方法。我没有使用 owner_id,而是使用了对象的 id 并使用了 this.store.find('restaurant', id) 然后名称就来了。虽然从 REST API 中返回的这两种情况的数据是相同的,但 ember 数据似乎期望不同的结果?
标签: ember.js ember-data