4

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

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

4

1 回答 1

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

向第一个对象返回一个承诺,然后在完成后对其进行处理。请注意,您可以在路由的模型方法中使用它,因为 ember 可以很好地处理 Promise。

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

model: function(params) {
    return App.Cart.find({slug: params.slug}).then(function (obj) {
        return obj.get('firstObject');
    });
}
于 2013-06-27T12:51:49.637 回答