在同一页面显示标签和帖子
Show tags and posts in the same page
基本上在 posts 索引页中,我想显示 posts 和相关标签,以便我可以使用它们进行过滤。通常一个 post 有很多标签,一个标签可以属于很多 post。这是我的部分代码:
export default Ember.Route.extend({
queryParams: {
location: { refreshModel: true },
page: { refreshModel: true },
},
model: function(params){
return this.store.findQuery('post', params);
}
});
网络服务returns一个json喜欢:
{ posts: [
{id: 1, title: "title", tags: [1, 2]}
],
tags: [
{id: 1, name: "Physics", posts: [1]},
{id: 2, name: "Math", posts: [1]}
]}
为了在页面顶部显示所有标签,我在设置标签的数组控制器中有一个 属性:
setTags: function(){
var str = "";
this.store.all('tag').forEach(function(tag){
str += tag.get('name') + ',';
});
this.set('tags', str);
}
# In template I use tags input to be able to filter posts by deleting tags:
{{tags-component value=tags}}
但是当我的模型使用位置、页面等其他过滤器进行刷新时,一些旧标签仍保留在商店中。出现了新旧标签(但我只想显示从服务器返回的新标签)
好像是个典型的issue,但是没找到类似的。任何资源如何实现它?
好的,据我所知,没有简单的答案(但如果有的话,请证明我是错的)。
而不是上面代码中的 this.store.all('tag')
(它为您提供商店中缓存的所有标签),我将迭代(每个循环)post,获取每个 post 的标签并将这些标签放在标识映射中(映射或 "hash" of id => object)。这样你就可以避免重复。现在您将遍历地图中的值以生成您的字符串。
基本上在 posts 索引页中,我想显示 posts 和相关标签,以便我可以使用它们进行过滤。通常一个 post 有很多标签,一个标签可以属于很多 post。这是我的部分代码:
export default Ember.Route.extend({
queryParams: {
location: { refreshModel: true },
page: { refreshModel: true },
},
model: function(params){
return this.store.findQuery('post', params);
}
});
网络服务returns一个json喜欢:
{ posts: [
{id: 1, title: "title", tags: [1, 2]}
],
tags: [
{id: 1, name: "Physics", posts: [1]},
{id: 2, name: "Math", posts: [1]}
]}
为了在页面顶部显示所有标签,我在设置标签的数组控制器中有一个 属性:
setTags: function(){
var str = "";
this.store.all('tag').forEach(function(tag){
str += tag.get('name') + ',';
});
this.set('tags', str);
}
# In template I use tags input to be able to filter posts by deleting tags:
{{tags-component value=tags}}
但是当我的模型使用位置、页面等其他过滤器进行刷新时,一些旧标签仍保留在商店中。出现了新旧标签(但我只想显示从服务器返回的新标签)
好像是个典型的issue,但是没找到类似的。任何资源如何实现它?
好的,据我所知,没有简单的答案(但如果有的话,请证明我是错的)。
而不是上面代码中的 this.store.all('tag')
(它为您提供商店中缓存的所有标签),我将迭代(每个循环)post,获取每个 post 的标签并将这些标签放在标识映射中(映射或 "hash" of id => object)。这样你就可以避免重复。现在您将遍历地图中的值以生成您的字符串。