Ember.js:如何使用模型的单个实例创建路由/控制器

Ember.js: How to create route/controller with single instance of a model

本文关键字:创建 实例 路由 控制器 单个 js 何使用 模型 Ember      更新时间:2023-09-26

如何找到模型的单个实例并将其分配给路由?

我希望本地存储中的同一对象成为路由及其控制器操作的模型。

我可以这样做,我的观点工作正常:

App.ThingRoute = Ember.Route.extend({
  model: function () {
    return this.store.createRecord("thing", {name: "Foo"});
  }
});

但是我找不到如何返回第一个"事物"记录而不是整个集合。我希望像这样:

return this.store.find("thing").first();

更新(2015-01-28 07:19:00 GMT):我应该明确表示,我打算让这个对象只存在于本地存储中。

谢谢

好吧,如果您尝试访问的记录已经加载,则可以使用:

this.store.all('thing').get('firstObject');

获取已加载记录集合的第一个对象。

当您想要返回尚未加载的第一个集合对象时,这有点棘手:

context = this;
return new Promise(function (resolve, reject) {
  context.store.find('thing').then(function (things) {
    resolve(things.get('firstObject'));
  });
});