2014-12-04 43 views
9

Cordova ve Ionic tabanlı mobil uygulamasına sahibim. Uygulamanın başlamasından sonra yüklenen varsayılan sayfada SQLLite eklentisi ile çalışmak gerekir.İyonik uygulamada doğru şekilde nasıl çalışır?

https://github.com/brodysoft/Cordova-SQLitePlugin

Sorun bu görünüm, SQL Lite eklentisi ile çalışmış olan kontrolör yöntemini çağırıyor

ng-init="setData()" 

içerir olduğunu. Ve yöntem nedeniyle deviceready olay başlatılmadan önce çağrıldı (eklenti sadece deviceready olaydan sonra başlatılabilir).

Yani bu geçici çözümü denedim:

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     db = window.sqlitePlugin.openDatabase({name:"callplanner"}); 
    } 

Ama bu benim için çalışmıyor.

Bu yüzden ikinci çözelti çalıştı:

.factory('cordova', function() { 
    return { 
     test: function(){ 
      document.addEventListener("deviceready", this.ready, false); 
     }, 
     ready: function(){ 
      alert("Ready"); 
      db = window.sqlitePlugin.openDatabase({name:"callplanner"}); 
     } 

    } 
}) 

ve kontrol init i çalıştı: (devicereadfy ng-init sonra ateşlenir)

cordova.test(); 

Ama bu çalışmıyor.

Bundan sonra ben bu yazıyı buldum:

http://java.dzone.com/articles/ionic-and-cordovas-deviceready

Ama app hazır ve nasıl zaman aşımı ayarlamaktır önce "Giriş ekranını" koymak nasıl anlamadı.

Birisi bu sorunu nasıl çözebilirim?

Teşekkürler Her türlü tavsiye veya yardım için teşekkür ederiz.

+0

Kimse nasıl çözüleceğini bilemez? – redrom

cevap

15

Bu, önce cordova "deviceready" olayını işlemek ve sonra angularjs uygulamasını başlatmanız gerekir. Şunun gibi:

<script> 
    document.addEventListener('deviceready', function() { 
    angular.bootstrap(document, ['YourAppName']); 
    }, false); 
    var YourAppName = angular.module('YourAppName', []); 
</script> 

Benzer sorular:

  1. İlk html/gövde etiketinin

  2. Başlat devireready sonra açısal uygulaması gelen ng-app özelliğini kaldırın:

3

benim ng-app etiketi vücutta çünkü o, @ t4deu solüsyonu ile işe gelemedi, bu yüzden birine yardımcı bu durumda küçük bir değişiklik bırakın.

<script> 
    document.addEventListener('deviceready', function() { 
     angular.bootstrap(document.querySelector('body'), ['starter']); 
    }, false); 

    </script> 
İlgili konular