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?

questionAnswers(3)

yourAnswerToTheQuestion