Emberjs:如何从find()获取单个对象(findAll)

时间:2013-06-26 17:11:48

标签: ember.js ember-data

我正在建立一个电子商务网站,并将购物车作为可通过网络服务/ api / cart /访问的模型。使用RESTAdapter,我想简单地调用App.Cart.find()并始终返回1个对象,而不是数组。购物车没有ID,因此调用App.Cart.find(1)会出错 - 加上会导致错误的Web服务调用:/ api / cart / 1.

我是否需要扩展RESTAdapter或Model以使app.Cart上的find()始终返回一个对象而不是一个列表?

1 个答案:

答案 0 :(得分:6)

App.Cart.find().then(function (result) {
  return result.get('firstObject'); 
});

向第一个对象返回一个promise,如果那样做,那就用它做一些事情。注意你可以在路径的模型方法中使用它,因为becaulse ember很好地处理了承诺。

我在那个模型中使用过。在最后一个版本中使用完美。

model: function(params) {
    return App.Cart.find({slug: params.slug}).then(function (obj) {
        return obj.get('firstObject');
    });
}