我仍在开发我的第一个 ionic 应用程序,但我再次遇到了一个问题:
我的应用程序使用 SQLite 来存储数据。我使用 ngCordova 的 sqlite-plugin 和 litehelpers 的 cordova-sqlite-storage 插件。
如果我使用“ionicserve --lab”测试应用程序,一切正常。没有错误,数据库有,数据没问题...
但是,如果我在 Android 设备“ionic run android -l -c -s”上测试它,我会收到以下错误,并且应用程序卡住:
0 779681 error TypeError: Cannot read property 'transaction' of undefined
at Object.execute (http://192.168.1.14:8100/lib/ngCordova/dist/ng-cordova.js:6872:11)
at new <anonymous> (http://192.168.1.14:8100/js/controllers.js:284:18)
at Object.instantiate (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:18010:14)
at $controller (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:23412:28)
at self.appendViewElement (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:59900:24)
at Object.switcher.render (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:57893:41)
at Object.switcher.init (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:57813:20)
at self.render (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:59759:14)
at self.register (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:59717:10)
at updateView (http://192.168.1.14:8100/lib/ionic/js/ionic.bundle.js:65398:23)
我的应用程序有 4 个页面,并且与 ui-router 一起使用。每个页面都有自己的 Controller 。
我两周以来一直在寻找和尝试,但没有机会......
有什么提示吗?
谢谢, 克里斯蒂安。
最佳答案
我发现问题:在设备上加载数据库需要更长的时间,并且开箱即用的 Ionic(-> AngularJS -> JavaScript)不会等待任务。
所以我不得不使用 promise :
- http://andyshora.com/promises-angularjs-explained-as-cartoon.html
- https://docs.angularjs.org/api/ng/service/ $q
现在可以了...
关于javascript - ionic +sqlite 在浏览器中工作但在真实设备上出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744042/