Ember:在树状表中搜索

时间:2017-02-03 03:51:51

标签: javascript ember.js

我们有一个分层模型:

segments
  demographic
    age
    language
    location
  interest
    art
    charity
    entertainment
      books
      movies
      music

我们把它放在一个有可扩展行的表中:

▶ segments

当您点击segments旁边的箭头时,您会看到:

▼ segments
  ▶ demographic
  ▶ interest

然后当您点击interest旁边的箭头时,您会看到:

▼ segments
  ▶ demographic
  ▼ interest
      art
      charity
    ▶ entertainment

你明白了。

诀窍是,不可见的子节点尚未存储(异步)。 单击箭头可从服务器中提取子项。

现在,模型以这种方式在Ember Data中实现:

export default DS.Model.extend({
  name: DS.attr('string'),
  parent: DS.belongsTo('segment', {
    async: true
  }),
  children: DS.hasMany('segment', {
    async: true,
    inverse: 'parent'
  })
});

现在,我们要实现搜索功能:

  • 用户在搜索文本输入中输入内容
  • 服务器返回搜索结果
  • 我们在表格中呈现它

这里的问题是我们想要显示整个路径。

比方说,我们搜索o,我们不仅要查看包含字母o的结果,还要查看所有父母的结果:

▼ segments
  ▼ demographic
      location
  ▼ interest
    ▼ entertainment
        books
        movies

问题:

假设我们从上面的示例中获取了所有项目。

如果我们想要呈现interest,则其子列表不完整

缺少artcharity这个视图很好。但是在模型中,children认为它已加载,但它只是部分加载。

这里有什么方法?

  • 拥有“搜索模式”,当您放弃它时,重新加载儿童
  • searchChildren
  • 的模型中有一个单独的字段
  • 使用完全独立的模型进行搜索?
  • 我们这样做错了吗?

感谢任何提示!

0 个答案:

没有答案