Hello everybody,
I’m using ngCordova promises inside my services so I need to be sure deviceReady has been already called and I was using this code:
return $ionicPlatform.ready().then(
function () {
var aFunction = function () {
return 'someValue';
};
return $ngCordovaFunction()
.then(function (returnValue) {
return aFunction();
});
});
I don’t use
$ionicPlatform.ready(function () { ... });
because, first of all, it doesn’t return a promise and then it is called just once. No matter how many times I need it, after first occurrence it doesn’t call others callback. The first is in app.js .run function, then no one $ionicPlatform.ready(…) in controllers or services are called. Just $ionicPlatform.ready().then(…) works. And I was ok with that.
Until Windows Phone.
On Windows Phone the first $ionicPlatform.ready(…) blocks every future calls to the same function, both $ionicPlatform.ready(…) and $ionicPlatform.ready().then(…) are ignored. If I switch app.js .run to $ionicPlatform.ready().then(…) then it let others ready().then(…) run but they are called twice. Every of them is called twice. Either with “ng-controller” and angular-ui routing.
Is it a bug? Or I’m missing something about it?
I could create a landing page to wait until deviceReady will be fired but it’s a workaround and I don’t like them…
Thank you to everyone who can give me some explanation…