1

我的应用正在调用返回联系人列表的 pickMultipleContactAsync 方法。如果我只想过滤特定的联系人以显示或仅显示一组联系人,WinJS 是否提供任何特定的方法或模式来执行此操作?我知道,因为它是一个列表,我可能可以使用一些标准谓词类型的东西来进行这种类型的过滤,但我想知道是否有任何特定的 WinJS API 来执行此操作。

4

2 回答 2

2

WinJS.Binding.List使用一种称为“投影”的功能来创建由谓词过滤的第二个列表,该谓词将随着原始列表的变化而自动更新。使用该createFiltered函数,然后您可以使用结果列表,例如在WinJS.UI.ListView.

于 2013-05-10T12:06:00.600 回答
1

在这种情况下可以使用Array.filter 。

var picker = Windows.ApplicationModel.Contacts.ContactPicker();
picker.commitButtonText = "Select";
picker.pickMultipleContactsAsync().then(function (contacts)
{
    var contactsStartingWithPrefixPa = contacts.filter(function filterContacts(contact)
    {
        if (contact.name.match(/^Pa/))
            return true;
        return false;
    });
});
于 2013-05-11T04:52:40.023 回答