首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据父id筛选子元素的数组

根据父id筛选子元素的数组
EN

Stack Overflow用户
提问于 2013-09-16 14:40:42
回答 1查看 671关注 0票数 0

这是一个基本的帖子/评论。

当我创建新评论时,它们被添加到一个与它们相关的帖子的id相匹配的post: attr()中。我想做一个过滤器,这样当选择一个特定的帖子并导航到评论部分时,只会加载相关的评论。

采用这种间接方式的原因是,在使用ember-model或ember-data +各自的firebase适配器时,我无法添加嵌入的注释。

我也无法保存新的注释,并在创建时将其添加到App.Postcomment_ids: []中。

如果任何人有关于如何做上述任何一个的想法,那也是可行的。

代码语言:javascript
复制
App.Router.map(function () {
  this.resource("posts", {
    path: "/posts"
  });
  this.resource("post", {
    path: "/:post_id"
  }, function () {
    this.resource("comments", {
      path: "/comments"
    });
  });
});

App.Post = Ember.Model.extend({
  name: attr(),
  comments: Ember.hasMany("App.Comment", {
    key: 'comments'
  })
});

App.Post.url = "/posts";

App.Comment = Ember.Model.extend({
  message: attr(),
  post: attr()
});
EN

回答 1

Stack Overflow用户

发布于 2013-09-21 13:16:48

过滤的最佳组合是Ember.computer.filterEmber.computed.filterBy

http://emberjs.com/api/#method_computed_filter http://emberjs.com/api/#method_computed_filterBy

filterBy是最简单的,但只适用于简单的单一属性/值过滤器。

代码语言:javascript
复制
App.Hampster = Ember.Object.extend({
  remainingChores: Ember.computed.filterBy('chores', 'done', false)
});

var hampster = App.Hampster.create({chores: [
  {name: 'cook', done: true},
  {name: 'clean', done: true},
  {name: 'write more unit tests', done: false}
]});
hampster.get('remainingChores'); // [{name: 'write more unit tests', done: false}]

filter允许您传递一个函数来进行更复杂的过滤。

代码语言:javascript
复制
App.Hampster = Ember.Object.extend({
  remainingChores: Ember.computed.filter('chores', function(chore) {
    return !chore.done;
  })
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18821776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档