ember.js - Emberjs : How to get a single object from find() (findAll)

标签 ember.js ember-data

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

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

最佳答案

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

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

我在那个模型中使用过。在最后一个 ember 版本中完美运行。
model: function(params) {
    return App.Cart.find({slug: params.slug}).then(function (obj) {
        return obj.get('firstObject');
    });
}

关于ember.js - Emberjs : How to get a single object from find() (findAll),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326407/

相关文章:

javascript - 如何获取 Controller 内的 hasMany 关系数据数组?

ember.js - 在保存到服务器之前更改 Ember 模型的值

authentication - token 认证与 Cookies

javascript - 在 EmberJS 中重定向

ember.js - 手动规范化 JSON

ember.js - findAll 完成加载所有记录时的 Ember-Data 回调

javascript - EmberJS 嵌套

ember.js - 使用 ember-data 在 ember.js 中处理路由错误时出错

javascript - 在 Ember.js 中手动设置单向绑定(bind)的正确语法是什么?

javascript - Ember-Data:DS.EmbeddedRecordsMixin 的预期使用模式