ember-data呈现belongsTo属性

时间:2015-06-03 01:02:46

标签: ember.js ember-data belongs-to

ember-cli 0.2.3; ember-data 1.0.0-beta.15

我正在努力弄清楚如何在模板中显示belongsTo对象的属性。我在这里发现了一些类似的问题,但它们已经过时或者没有提供解决方案。

用户模型: export default DS.Model.extend({ ... agency : DS.belongsTo("agency"), });

代理商型号: var Agency = DS.Model.extend({ ... users: DS.hasMany("user"), });

用户序列化程序: export default ApplicationSerializer.extend(DS.EmbeddedRecordsMixin, { attrs: { agencies: { embedded: "always" } } });

ApplicationSerializer: export default DS.RESTSerializer.extend({});

JSON(用于索引路由)如下所示: { "users": [ { "id" : "1", "name" : "...", "agency_id": "6", "agencies" : [ { "id" : "6", "name": "...", ... } ] }, ... ] }

虽然Ember并不抱怨,但我甚至不确定数据是否正确,因为EmbeddedRecordsMixin的文档显示了belongsTo示例: { "post": { "id": "1" "title": "Rails is omakase", "author": { "id": "2" "name": "dhh" } } } 在任何情况下,我都可以看到代理商数据被包含在内,虽然它似乎必须是一个数组,尽管每个用户只有一个。我还没有找到准确说明预期格式的完整解释。

然而,主要的是:如何在模板中显示代理商名称?

不出所料,这不起作用: {{#each user in model}} <tr> <td>{{user.get('agencies').firstObject().get("name")}}</td> <td>{{user.name}}</td> <td>{{user.email}}</td> </tr> {{/each}}

更新 我修改了数据,如下所示: { "users": [ { "id" : "1", "name" : "...", "agency_id": "6", "agency" : [ { "id" : "6", "name": "...", ... } ] }, ... ] }

...并将模型更新为代理商:DS.belongsTo(&#34; agency&#34;)和序列化器作为attrs:{agency:{embedded:&#34; always&#34;}}但是扔了一个错误。解决方案是从数据中删除agency_id。

0 个答案:

没有答案