0

我想使用谷歌地图在 ember 中创建应用程序。它看起来类似于谷歌地图,在左侧我想要过滤器,在右侧它将是地图。可以说我的地点对象看起来像:

{ name: 'Luigi', type: 'pizza', ...}

在过滤器中,我想使用复选框选择要在地图上显示的地点类型。默认情况下,所有元素都被选中,并且每个选中的类型地点都显示在地图上。

这里开始我的问题。我看了窥视代码,阅读指南,但我不知道如何开始。我想我需要一些FilterController存储选定的过滤器数组,并且属性会以PlacesControllers 某种方式 从基于该数组的模型中content监视类型数组FilterController并返回集合。Places

如何对上述情况的地方进行过滤?

现在我正在尝试构建基于过滤器列出地点的演示,欢迎所有输入!

4

1 回答 1

2

您可以在数组控制器上执行计算属性,根据接口指定的内容过滤数组控制器:

App.PlacesController({
   content: [an array with your places],
   placesToDisplay: function(){
       return this.filter(function(item){
           return this.get('filter').contains(item.get('type')); //true when you want the item to be displayed.
       });
   }.property('content', 'filter'),
   filter: [] //containing the types you want to filter on.
});

参考placesToDisplay您认为的属性。并更新filter属性。因为placesToDisplay监视属性,当属性的内容发生更改filter时,它将重新呈现您的视图。filter

你试过什么了?如果你会做一个小提琴,我可以更具体。

于 2013-02-08T10:54:45.520 回答