angularjs – Movilizer – 使用具有离子的MovilizerJS

前端之家收集整理的这篇文章主要介绍了angularjs – Movilizer – 使用具有离子的MovilizerJS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用MovilizerJS和Ionic Framework来创建 HTML5屏幕.我尝试从Ionic生成的App.js文件中引用te MovilizerJS.我在plugins文件夹中添加了MovilizerJS文件,并添加了包含的Cordova.js文件.
  1. var oHead = document.getElementsByTagName('HEAD').item(0);
  2. var oScript = document.createElement("script");
  3. oScript.type = "text/javascript";
  4. oScript.src = "plugins/Movilizer.js";
  5. oHead.appendChild(oScript);

看来,当我在浏览器中加载HTML5页面(或者在movelet中加载html5视图)时,MovilizerJS不会被加载.浏览器上显示以下错误

Module ‘movilizer’ is not available!

也许我需要将此作为模块添加到Angular框架中,但是当我尝试将其添加到模块时它仍然给我错误.
我的HTML文件包含movilizer的脚本标记

  1. <script src="plugins/Movilizer.js"></script>

我的App.js代码目前看起来像这样:

  1. angular.module('starter',['ionic'])
  2. .run(function($ionicPlatform) {
  3. $ionicPlatform.ready(function() {
  4. // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
  5. // for form inputs)
  6. if(window.cordova && window.cordova.plugins.Keyboard) {
  7. cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  8. }
  9. if(window.StatusBar) {
  10. StatusBar.styleDefault();
  11. }
  12.  
  13. });
  14. }).factory('MovilizerExtender',function ($rootScope) {
  15. return {
  16. startUpMovilizer: function(){
  17. movilizer.readGlobalVariable("testTable",this.successCallback,this.errorCallback);
  18. },successCallback: function(result){
  19. $rootScope.routestops = [
  20. { ontvNaam: 'nice' },{ ontvNaam: 'it' },{ ontvNaam: 'is' },{ ontvNaam: 'working' }
  21. ];
  22. },errorCallback: function(){
  23. console.log('Failed');
  24. }
  25. }
  26. }).controller("RoutestopCtrl",function($scope,$rootScope,MovilizerExtender) {
  27. MovilizerExtender.startUpMovilizer();
  28. $scope.routestops = $rootScope.routestops;
  29.  
  30. $rootScope.$watch('routestops',function(){
  31. $scope.routestops = $rootScope.routestops;
  32. });
  33. });

当我直接调用succesCallback方法并注释行:movilizer.readGlobalVariable(…)时,它不再尝试访问movilizerJS并且页面正常工作.另请注意,Movilizer.js文件包含app.js代码中描述的readGlobalVariable方法.任何帮助或想法将不胜感激.

尝试引导您的应用而不是使用ng-app:
  1. window.onpageshow = ready;
  2. function ready()
  3. {
  4. var deviceready = new Event("deviceready");
  5. document.dispatchEvent(deviceready);
  6. angular.bootstrap(document,['starter'],{strictDi: true});
  7. }

另外,使用承诺等待movilizer:

  1. .factory('MovilizerExtender',function ($q,$rootScope) {
  2. return {
  3. startUpMovilizer: function(){
  4. var self = this;
  5. var defer = $q.defer();
  6.  
  7. rootScope.$watch(function(value) {
  8. return movilizer && movilizer.readGlobalVariable;
  9. },function(ready) {
  10. if(ready) {
  11. movilizer.readGlobalVariable("testTable",self.successCallback,self.errorCallback);
  12. }
  13. defer.resolve(ready);
  14. });
  15. return defer.promise;
  16. },successCallback: function(result){
  17. $rootScope.routestops = [
  18. { ontvNaam: 'nice' },{ ontvNaam: 'working' }
  19. ];
  20. },errorCallback: function(){
  21. console.log('Failed');
  22. }
  23. }
  24. }).controller("RoutestopCtrl",MovilizerExtender) {
  25. MovilizerExtender.startUpMovilizer().then(function(){
  26. $scope.routestops = $rootScope.routestops;
  27. });
  28. $rootScope.$watch('routestops',function(){
  29. $scope.routestops = $rootScope.routestops;
  30. });
  31. });

猜你在找的Angularjs相关文章