Я использую Кордову 3.3.1-0.4.2 и Угловое 1.2.13вручную самозагрузка AngularJS из Кордовы deviceready события
мне нужно вручную самонастройки Угловым как только я получаю «deviceready» события в Кордова.
Я тестирую Nexus 5 с помощью cordova run android
, но у меня точно такое же поведение на iPhone.
Чтобы упростить эту проблему, JS работает в глобальной области документа. Сценарии загружаются до закрытия тега </body>
.
Это работает:
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
Это не работает:
function init(){
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
}
document.addEventListener('deviceready', function() {
init();
}, true);
Однако если добавить alert("init")
методу инициализации, который показывает, что он работает. Также предупреждение (угловое) и предупреждение (document.getElementById («приложение»)) показывают, что они существуют.
Я не понимаю, почему, поскольку вызов init() вызывается, он не работает при вызове из обратного вызова EventListener, но он работает, если вызван напрямую.
Кажется странным/неинтуитивным.
Кто-нибудь?
Событие 'deviceready' используется для использования cordova API –
Да, это' deviceready' из API Cordova, который прослушивает EventListener. – Ade
Итак, почему bootstraping angularJS, когда кордова готова? Угловой не нужен API-интерфейс cordova, чтобы быть готовым к запуску, вы можете вызвать 'deviceready' после углов бутстрапинга. –