我正在建立一个电子商务网站,并将购物车作为可通过网络服务/ api / cart /访问的模型。使用RESTAdapter,我想简单地调用App.Cart.find()
并始终返回1个对象,而不是数组。购物车没有ID,因此调用App.Cart.find(1)
会出错 - 加上会导致错误的Web服务调用:/ api / cart / 1.
我是否需要扩展RESTAdapter或Model以使app.Cart上的find()始终返回一个对象而不是一个列表?
答案 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');
});
}