Inicialização manual do AngularJS do evento deviceready do Cordova
Estou usando o Cordova 3.3.1-0.4.2 e o Angular 1.2.13
Preciso inicializar manualmente o Angular assim que receber o evento 'deviceready' do Cordova.
Estou testando em um Nexus 5 comcordova run android
mas estou tendo exatamente o mesmo comportamento em um iPhone.
Para simplificar o problema, é o JS em execução no escopo global do documento. Os scripts estão sendo carregados antes do fechamento</body>
etiqueta, rótulo, palavra-chave.
Isso funciona:
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
Isso não funciona:
function init(){
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
}
document.addEventListener('deviceready', function () {
init();
}, true);
No entanto, se eu adicionaralert("init")
para o método init que mostra que está em execução. Também alert (angular) e alert (document.getElementById ("app")) mostram que eles existem.
Não entendo por que, dado que init () está sendo chamado, ele não funciona quando chamado a partir do retorno de chamada EventListener, mas funciona se chamado diretamente.
Parece estranho / não intuitivo.
Qualquer um?