2013-05-10 94 views
1

我的应用程序正在调用pickMultipleContactAsync方法,该方法返回联系人列表。如果我只想过滤特定的内容来显示或只显示一定数量的联系人,WinJS是否提供了任何特定的方法或模式来执行此操作?我知道自从它的一个列表,我可能可以使用一些标准的谓词类型的东西来做这种类型的过滤,但我想知道是否有任何特定的WinJS API来做到这一点。过滤联系人以显示或只显示设定的联系人数

回答

2

WinJS.Binding.List使用称为“投影”的功能来创建由谓词过滤的第二个列表,该谓词将在源列表更改时自动更新自身。 使用createFiltered函数,则可以使用结果列表,例如在WinJS.UI.ListView中。

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; 
    }); 
});