Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Emberjs:如何从find()获取单个对象(findAll)_Ember.js_Ember Data - Fatal编程技术网

Ember.js Emberjs:如何从find()获取单个对象(findAll)

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

我正在构建一个电子商务网站,并将购物车作为一个模型,可通过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'); 
});
向第一个对象返回一个承诺,然后在完成后对其进行处理。注意,您可以在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()方法之后,模型确实最终会被加载。)