Ember.js Emberjs:如何从find()获取单个对象(findAll)
我正在构建一个电子商务网站,并将购物车作为一个模型,可通过web服务/api/cart/访问。使用RESTAdapter,我只想调用Ember.js Emberjs:如何从find()获取单个对象(findAll),ember.js,ember-data,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 (r
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');
});
向第一个对象返回一个承诺,然后在完成后对其进行处理。注意,您可以在route的model方法中使用此选项,以确保ember处理得很好
我用在那个模型上。在上一个余烬版本中效果完美
model: function(params) {
return App.Cart.find({slug: params.slug}).then(function (obj) {
return obj.get('firstObject');
});
}
这比我想做的要干净得多。谢谢我发现在路由的model方法中使用此方法的问题是,
then()
方法似乎在JSON从服务器返回并被处理之前启动。这意味着调用result.get('firstObject')
总是返回“undefined”作为进一步的信息,此时isLoaded似乎也被设置为true……尽管它不是。(在调用then()方法之后,模型确实最终会被加载。)