angularjs – Movilizer – 使用具有离子的MovilizerJS
发布时间:2020-12-17 07:26:47 所属栏目:安全 来源:网络整理
导读:我正在尝试使用MovilizerJS和Ionic Framework来创建 HTML5屏幕.我尝试从Ionic生成的App.js文件中引用te MovilizerJS.我在plugins文件夹中添加了MovilizerJS文件,并添加了包含的Cordova.js文件. var oHead = document.getElementsByTagName('HEAD').item(0);v
我正在尝试使用MovilizerJS和Ionic Framework来创建
HTML5屏幕.我尝试从Ionic生成的App.js文件中引用te MovilizerJS.我在plugins文件夹中添加了MovilizerJS文件,并添加了包含的Cordova.js文件.
var oHead = document.getElementsByTagName('HEAD').item(0); var oScript = document.createElement("script"); oScript.type = "text/javascript"; oScript.src = "plugins/Movilizer.js"; oHead.appendChild(oScript); 看来,当我在浏览器中加载HTML5页面(或者在movelet中加载html5视图)时,MovilizerJS不会被加载.浏览器上显示以下错误:
也许我需要将此作为模块添加到Angular框架中,但是当我尝试将其添加到模块时它仍然给我错误. <script src="plugins/Movilizer.js"></script> 我的App.js代码目前看起来像这样: angular.module('starter',['ionic']) .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); } if(window.StatusBar) { StatusBar.styleDefault(); } }); }).factory('MovilizerExtender',function ($rootScope) { return { startUpMovilizer: function(){ movilizer.readGlobalVariable("testTable",this.successCallback,this.errorCallback); },successCallback: function(result){ $rootScope.routestops = [ { ontvNaam: 'nice' },{ ontvNaam: 'it' },{ ontvNaam: 'is' },{ ontvNaam: 'working' } ]; },errorCallback: function(){ console.log('failed'); } } }).controller("RoutestopCtrl",function($scope,$rootScope,MovilizerExtender) { MovilizerExtender.startUpMovilizer(); $scope.routestops = $rootScope.routestops; $rootScope.$watch('routestops',function(){ $scope.routestops = $rootScope.routestops; }); }); 当我直接调用succesCallback方法并注释行:movilizer.readGlobalVariable(…)时,它不再尝试访问movilizerJS并且页面正常工作.另请注意,Movilizer.js文件包含app.js代码中描述的readGlobalVariable方法.任何帮助或想法将不胜感激.
尝试引导您的应用而不是使用ng-app:
window.onpageshow = ready; function ready() { var deviceready = new Event("deviceready"); document.dispatchEvent(deviceready); angular.bootstrap(document,['starter'],{strictDi: true}); } 另外,使用承诺等待movilizer: .factory('MovilizerExtender',function ($q,$rootScope) { return { startUpMovilizer: function(){ var self = this; var defer = $q.defer(); rootScope.$watch(function(value) { return movilizer && movilizer.readGlobalVariable; },function(ready) { if(ready) { movilizer.readGlobalVariable("testTable",self.successCallback,self.errorCallback); } defer.resolve(ready); }); return defer.promise; },successCallback: function(result){ $rootScope.routestops = [ { ontvNaam: 'nice' },{ ontvNaam: 'working' } ]; },errorCallback: function(){ console.log('failed'); } } }).controller("RoutestopCtrl",MovilizerExtender) { MovilizerExtender.startUpMovilizer().then(function(){ $scope.routestops = $rootScope.routestops; }); $rootScope.$watch('routestops',function(){ $scope.routestops = $rootScope.routestops; }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |