gpt4 book ai didi

javascript - 在不使用 ng-click 的情况下使用 Ionic + Cordova + AngularJS 显示联系人列表

转载 作者:行者123 更新时间:2023-11-30 17:08:37 25 4
gpt4 key购买 nike

我正在尝试在我的智能手机上显示我的联系人列表。我可以做到这一点,但要求显示列表的唯一方法是通过 ng-click 调用 findcontact() 函数。

我试图从 Controller 中调用 findcontact() 函数,但没有成功。

如何在不单击此按钮的情况下显示此列表?

首先是 javascript,然后是 HTML。

angular.module('starter.controllers', [])

.controller('contacts2', ['$scope', 'PhoneContactsFactory', function($scope, PhoneContactsFactory) {

$scope.findContact = function()
{
PhoneContactsFactory.find().then(function(contacts)
{
$arr = [];
for (var i = 0; i < contacts.length; i++)
{
$arr.push({name: contacts[i].name.formatted})
}
$scope.contacts = $arr;
});

};
}])

.factory("PhoneContactsFactory", ['$q', function($q)
{
return {
find: function()
{
var deferred = $q.defer(); // asynchronous
var options = new ContactFindOptions();
options.multiple = true;
var fields = ["displayName", "name"];

navigator.contacts.find(fields,
function(contacts){ deferred.resolve(contacts); }, //onsuccess
function(error){ deferred.reject(error); }, // onerror
options);
return deferred.promise;
}
};
}]);
<div ng-controller="contacts2">
<button ng-click="findContact()">Push 2</button>
<ion-list>
<ion-item ng-repeat="contact in contacts">
{{contact.name}}
</ion-item>
</ion-list>
</div>

非常感谢!

yts

最佳答案

#ionic irc chan 上的讨论最终给出了一个简单的解决方案。问题是竞争条件。由于联系人列表仅在 cordova 重新加载页面时显示,我认为问题可能与第一次加载时未准备好的插件有关。

所以我用 $ionicPlatform.ready(function()) 更新了我的 Controller 代码,它现在运行良好。

最新代码在这里:https://github.com/lennycartier/ionic-contactlist

有关此(简单)问题的非常有趣的文章,请参阅 raymondcamden.com 博客。

还有我关于此的小文章:http://www.datanotes.org/13-ionic-framework-and-deviceready

yts

关于javascript - 在不使用 ng-click 的情况下使用 Ionic + Cordova + AngularJS 显示联系人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27474756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com