我开始玩ember并尝试将WordPress REST API和EmberJS结合起来。我正在坚持这个问题:我想让ember向我展示某个类别或标签中的所有WordPress帖子。
我的路线显示了类别模型routes/categories.js
中的所有类别models/category.js
。
现在我需要为每个类别routes/categories/category.js
设置一条路线,向我显示某个类别中的所有帖子。
post
和category
是两个模型,我需要合并,但我不知道如何......
在routes/categories.js
我有类似的东西
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
categories: this.store.findAll('category'),
posts: this.store.findAll('post')
});
},
setupController(controller, model) {
this._super(...arguments);
Ember.set(controller, 'categories', model.categories);
Ember.set(controller, 'posts', model.posts);
}
});
在templates/categories.hbs
这个
<p>List of all categories in the model</p>
<ul>
{{#each categories as |category|}}
<li>{{link-to category.name 'categories.category' category}}</li>
{{/each}}
</ul>
现在我想查看此类别中的所有帖子
routes/categories/category.js
export default Ember.Route.extend({
model(params) {
...???...
}
});
并在templates/categories/category.hbs
?
<h3>List all posts from the selected category</h3>
<ul>
{{#each posts as |post|}}
<li>{{link-to post.title 'posts.post' post}}</li>
{{/each}}
</ul>
有人可以帮忙吗?
答案 0 :(得分:0)
您需要做的是查询按类别过滤的所有帖子。首先使用您需要的数据找到端点。
要使用WP-API按类别过滤帖子,您可以执行以下操作:
example.com/wp-json/wp/v2/posts?per_page=99&filter[category_name=my-category]
要将类别传递给路线的模型,我们需要一个动态路线。例如:
this.route('category', {path: 'categories/:slug'});
...将变成example.com/categories/food。相应的余烬数据方法是:
model(params) {
return this.store.query('post', {per_page: 99, filter: {category_name: params.slug}});
}
我在这里做了一个完整的例子:http://ember-wordpress.surge.sh/。
(记录的)源代码在{/ 3}}中,位于tests / dummy文件夹中。