1

我不清楚以下两种查找方法之间有什么区别:

model: function (params) {
    return App.Publication.findById(params.publication_id);  
  },

model: function (params) {
    return App.Publication.find(params.publication_id);
  },

在 transition.retry 中使用 findbyId 方法时遇到问题;在这种情况下,模型在转换时没有加载导致错误......另请参阅Ember:在转换后丢失路由 ID。重试() - 我做错了什么吗?

4

1 回答 1

4

我认为您在谈论DS.Store,因为DS.Model没有findById方法。

find和in store之间findById的区别在于 findById 就像名字所说的那样:将通过 id 查找数据。并且 find 有一种多态的方式来根据您的参数查找记录:

  • 调用 store.find(App.Publication, 1 /* number of string */) 将执行 store.findById
  • 用store.find(App.Publication),会执行一个store.findAll
  • 和 store.find(App.Publication, { name: 'Tom' }),调用 store.findQuery

DS.Model.find 有一个别名 store.find,所以要创建一个 findById,只需调用 App.Publication.find(1 /* number of string */)

于 2013-08-18T16:50:45.927 回答