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