Dojo FilteringSelect SearchAttr搜索数组属性的名称

时间:2013-10-22 11:23:42

标签: arrays filter dojo dojox.mobile

我有以下数组:

    [{"id":1,"vak":{"naam":"Wiskunde"},"onderwerp":"Dit is het onderwerp van de les ..."},
     {"id":2,"vak":{"naam":"Aardrijkskunde"},"onderwerp":"Bli Bla, Dit is het onderwerp van de les ..."},
     {"id":3,"vak":{"naam":"Biologie"},"onderwerp":"Dit is het onderwerp van de les ..."},
     {"id":4,"vak":{"naam":"Wizkunde"},"onderwerp":"Dit is het onderwerp van de les ..."}]

我想实现一个搜索“naam”的filteringSelect。 当我搜索“onderwerp”时,我只是将searchAttr设置为:

    this.lessonsSearchBox.set("searchAttr", "onderwerp");

但是如果我想搜索“naam”,我不知道如何设置我的searchAttr,因为“naam”是“vak”的属性。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

据我所知(并查看源代码),你不能。它只是使用该属性作为属性名称。

我能想出的最佳解决方案是映射数组,例如执行以下操作:

var newRoosterItems = array.map(roosterItems, function(item) {
    var newItem = lang.clone(item);
    lang.mixin(newItem, {
        vakNaam: item.vak.naam
    });
    return newItem;
});

这会将您的数组映射到一个新的项目数组,每个项目都有一个名为vakNaam的属性,其中包含naam的{​​{1}}属性。

可以找到一个示例JSFiddle here


如果您不需要原始数据,您还可以选择转换现有数据,方法是:

vak