正在从其他模型获取数据 Ember
Fetching data from other model Ember
我有一个用户模型
export default DS.Model.extend({
username : DS.attr('string'),
numberOfQuotes: DS.attr('number'),
numberOfFollowers: DS.attr('number'),
numberOfFollowing: DS.attr('number')
});
和引号模型
export default DS.Model.extend({
user: DS.belongsTo('user'),
text: DS.attr('string')
});
我得到的报价还包括用户 ID,为此我正在使用
quotes :this.store.findAll('quote')
但我无法获取用户对象,因此无法检索数据。任何帮助都会有用,谢谢。
1) 来自 ember 本地商店:
如果您想从 ember 商店获取数据,您必须使用 peekAll
。在您的控制器或组件中使用计算 属性,
...
quotes: computed(function() {
return this.store.peekAll('quote');
}),
...
然后您可以按如下方式在您的模板中获取用户数据,
{{#each quotes as |quote|}}
{{quote.user.username}}
{{/each}}
2) 来自服务器:
注意:findAll
查询要求数据在数组中。
使用 RESTAdapter 时,
{ quotes:
[ {
id: 1,
text: "sample1",
user: { username: "name1", numberOfQuotes: "5" }
},
{
id: 2,
text: "sample2",
user: { username: "name2", numberOfQuotes: "8" }
}
]
}
使用 JSONAPIAdpater 时,
{ quotes:
[ {
id: 1,
text: "sample1",
user: 10
},
{
id: 2,
text: "sample2",
user: 11
},
{
id: 3,
text: "sample3",
user: 10
}
],
users:
[ {
id: 10,
username: "name1",
numberOfQuotes: "5"
quotes: [1,3]
},
{
id: 11,
username: "name2",
numberOfQuotes: "8"
quotes: [2]
}
]
}
在您的路由模型挂钩中执行 findAll
查询时,根据您使用的 APIAdapter,以上任何一项都是您将获得的响应类型。
...
model: function() {
return this.store.findAll('quote');
}
...
我有一个用户模型
export default DS.Model.extend({
username : DS.attr('string'),
numberOfQuotes: DS.attr('number'),
numberOfFollowers: DS.attr('number'),
numberOfFollowing: DS.attr('number')
});
和引号模型
export default DS.Model.extend({
user: DS.belongsTo('user'),
text: DS.attr('string')
});
我得到的报价还包括用户 ID,为此我正在使用
quotes :this.store.findAll('quote')
但我无法获取用户对象,因此无法检索数据。任何帮助都会有用,谢谢。
1) 来自 ember 本地商店:
如果您想从 ember 商店获取数据,您必须使用 peekAll
。在您的控制器或组件中使用计算 属性,
...
quotes: computed(function() {
return this.store.peekAll('quote');
}),
...
然后您可以按如下方式在您的模板中获取用户数据,
{{#each quotes as |quote|}}
{{quote.user.username}}
{{/each}}
2) 来自服务器:
注意:findAll
查询要求数据在数组中。
使用 RESTAdapter 时,
{ quotes:
[ {
id: 1,
text: "sample1",
user: { username: "name1", numberOfQuotes: "5" }
},
{
id: 2,
text: "sample2",
user: { username: "name2", numberOfQuotes: "8" }
}
]
}
使用 JSONAPIAdpater 时,
{ quotes:
[ {
id: 1,
text: "sample1",
user: 10
},
{
id: 2,
text: "sample2",
user: 11
},
{
id: 3,
text: "sample3",
user: 10
}
],
users:
[ {
id: 10,
username: "name1",
numberOfQuotes: "5"
quotes: [1,3]
},
{
id: 11,
username: "name2",
numberOfQuotes: "8"
quotes: [2]
}
]
}
在您的路由模型挂钩中执行 findAll
查询时,根据您使用的 APIAdapter,以上任何一项都是您将获得的响应类型。
...
model: function() {
return this.store.findAll('quote');
}
...