[英]Get all contacts at least one phone number in ngCordova Contacts plugin
我正在使用ngcordova 联系人插件来检索应用程序中的联系人。 我想知道是否可以仅获取至少具有一个电话号码的联系人。
我使用以下代码,它返回我的google联系人,其中包含电子邮件但不包含电话号码。 但是我只希望可用的电话号码而不是电子邮件。 这可能吗 ? 或任何其他可获得此结果的选项。
$scope.getContactList = function() {
$ionicLoading.show({
template: 'Loading...'
});
var options = {};
options.multiple = true;
options.hasPhoneNumber = true;
options.fields = ['name.formatted', 'phoneNumbers'];
$cordovaContacts.find(options).then(function(result) {
$scope.contacts = result;
$ionicLoading.hide();
}, function(error) {
console.log("ERROR: " + error);
});
}
我建议使用http://underscorejs.org/来过滤联系人结果。 这样的事情应该适合您的需求:
$scope.getContactList = function() {
$ionicLoading.show({
template: 'Loading...'
});
var options = {};
options.multiple = true;
options.hasPhoneNumber = true;
options.fields = ['name.formatted', 'phoneNumbers'];
$cordovaContacts.find(options).then(function(result) {
$scope.contacts = result;
var contactsWithAtLeastOnePhoneNumber = _.filter(result, function(contact){
return contact.phoneNumbers.length > 0
});
//
// Contacts with at least one phone number...
console.log(contactsWithAtLeastOnePhoneNumber);
$ionicLoading.hide();
}, function(error) {
console.log("ERROR: " + error);
});
}
由于phoneNumbers
数组可以返回并且为空,因此此快速方法可确保至少存在一个条目。
我得到了不使用任何外部js的解决方案,代码如下所示:
$scope.getContactList = function() {
$scope.contacts = [];
$ionicLoading.show({
template: 'Loading...'
});
var options = {};
options.multiple = true;
$cordovaContacts.find(options).then(function(result) {
for (var i = 0; i < result.length; i++) {
var contact = result[i];
if(contact.phoneNumbers != null)
$scope.contacts.push(contact);
}
$ionicLoading.hide();
}, function(error) {
console.log("ERROR: " + error);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.