在Ember.js,
我正在尝试使用匹配的密钥执行所有帖子的查询。顺便说一下,这是在Firebase中。我的数据看起来像这样:
我正在尝试根据posts
属性查询特定的key
(多个帖子可能具有相同的key
属性值。)
所以这是我路线中的model(params)
路线/ stuff.js
export default Ember.Route.extend({
model(params) {
console.log(params.site_id);
return this.store.query('post', { "key": params.site_id} );
}
})
这是我试图在我的模板中显示我的帖子:
模板/ stuff.hbs
{{#each model as |post|}}
<div class="panel panel-default">
<div class="panel-heading">
Post Title: {{post.title}}
</div>
<div class="panel-body">
<div class="col-lg-6 col-md-6 col-sm-6 margin-top-1em">
<ul class="li-type-none">
<li>Post Author: {{post.author}}</li>
</ul>
</div>
<div class="col-lg-6 col-md-6 col-sm-6">
<ul class="nav nav-pills margin-top-small">
{{#link-to 'posts.edit' post.id class='btn btn-success btn-s'}}Edit{{/link-to}}
<button class="btn btn-danger btn-s" {{action 'deletePost' post}}>Remove Post</button>
</ul>
</div>
</div>
</div>
{{/each}}
{{outlet}}
而且,好消息是我的posts
会显示出来。坏消息是所有帖子都显示出来。即使是那些没有正确钥匙的人。为什么我的查询返回所有帖子而不是只返回具有正确键属性的帖子?
以下是一些可能有用的额外信息:
模型/ post.js
import DS from 'ember-data';
export default DS.Model.extend({
author: DS.attr('string'),
title: DS.attr('string'),
content: DS.attr('string'),
key: DS.attr('string'),
date: DS.attr('date', { defaultValue() { return new Date(); }}),
site: DS.belongsTo('site'),
isLocked: DS.attr('boolean'),
lockedContent: DS.attr('string'),
metaData: DS.attr('string')
});
此外,以下是它在网址中的显示方式(请注意,key
属性已传入网址)
http://localhost:4200/posts/-D2312jsj23u1828u42/stuff
谢谢!
答案 0 :(得分:0)
这意味着此解决方案仅在您使用emberfire
适配器时才有效。如果您没有使用emberfire适配器,您需要查看适配器的文档,以了解查询如何适用于您的特定适配器
export default Ember.Route.extend({
model(params) {
console.log(params.site_id);
return this.store.query('post', {orderBy: 'author', equalTo: "Cameron Fife"} ).then(function(res) {
return res
});
}
});