【发布时间】:2016-07-07 20:48:06
【问题描述】:
我正在使用 Ember.RSVP.hash 访问 Ember 控制器中的多个模型:
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
categories: this.store.findAll('category')
languages: this.store.findAll('language'),
requirementTypes: this.store.findAll('requirement-type')
});
},
setupController: function(controller, models) {
controller.set('categories', models.categories);
controller.set('languages', models.languages);
controller.set('requirementTypes', models.requirementTypes);
}
});
我一直在 Google 上搜索如何正确访问控制器中的模型数据。到目前为止,我发现的唯一方法感觉太老套了。我只想访问从我的 api 返回的原始 HTTP 响应数据。
但是,当我编写 this.get('categories') 时,我得到的结果相当丑陋,而且是一个比我的 api 返回的对象复杂得多的对象:
“InternalModel”条目包含从我的 api 返回的 _data 属性中的实际数据:
是否有更好的推荐方法来访问从我的 api 返回并通过关联路由传递给控制器的模型数据?我希望能够访问我的 api 返回的确切数据,例如 this.get('categories') 并立即访问我的 api 发送的模型数据。
【问题讨论】:
-
为什么要访问精确的 api 响应?你不能只定义你的模型来拥有你需要的所有数据吗?您将无法使用 ember 存储方法访问确切的响应,您需要使用常规 ajax 请求才能做到这一点。
-
我正在使用 Ember Data 发出 api 请求,然后将该模型数据传递给控制器。我这样做的方式真的是最好的方式吗?如果是这样,那么我不确定我是否理解 Ember Data 的意义,并且更愿意简单地使用手动 HTTP 请求。
-
您可以使用
controller.setProperties(models)一次性设置所有三个属性
标签: ember.js ember-data