PhoneGap:角度控制器不起作用

时间:2013-11-01 20:03:11

标签: javascript jquery angularjs cordova windows-phone-8

我有一个HTML单页网络应用程序,我正在尝试将其变成Windows Phone 8的PhoneGap应用程序。

该应用程序使用Angular和jQuery Mobile,为了达到两个合作,我不得不使用jquery-mobile-angular-adapter。该应用程序适用于所有浏览器,包括诺基亚Lumia Windows Phone上的IE 10 mobile。

当我在设备上编译和测试PhoneGap应用程序时,各种库似乎加载并初始化,直到它们到达Angular控制器。控制器永远不会加载/初始化,无论它们多么简单。

以下是库的加载方式:

<script type="text/javascript" src="cordova.js"></script>
<script src="javascripts/vendor/jquery-mobile-angular-adapter-standalone-1.3.1.js"    type="text/javascript"></script>
<script>
  document.addEventListener('deviceready', function() {
    angular.element(document).ready(function() {
      console.log('DEVICE READY - ANGULAR DOCUMENT READY');
      angular.bootstrap(document.body, ['psxclient']);
    });
  }, false);
</script>  
<script src="javascripts/vendor/jquery.easing.1.3.js" type="text/javascript"></script>
<script src="javascripts/vendor/jquery.mobile.scrollview.js" type="text/javascript"></script>
<script src="javascripts/vendor/jquery.metro.js" type="text/javascript"></script>
<script src="javascripts/vendor/jquery.metro.mobile.js" type="text/javascript"></script>
<script src="javascripts/vendor/underscore.js" type="text/javascript"></script>
<script src="javascripts/services.js" type="text/javascript"></script>
<script src="javascripts/filters.js" type="text/javascript"></script>
<script src="javascripts/app.js" type="text/javascript"></script>

这里是一些模仿我的Angular的简单代码,其中所有内容都初始化并且console.log跟踪有效,减去控制器的'APPCTRL'

var psxclient = angular.module('psxclient', ['stubdata', 'common-filters']).
config(function ($routeProvider) {
    console.log('APP');
        $routeProvider.when('/deal/:id', 
             {
                templateUrl: '#deal',
                jqmOptions: { transition: 'slide' }
        });
    console.log('CONFIG COMPLETE');
    }).controller('AppCtrl', function ($scope, $history, $location)
    {
    console.log('APPCTRL');
   });

1 个答案:

答案 0 :(得分:0)

我认为在$ routeProvider中,没有任何命令可以调用AppCtrl控制器来运行。 我对自己的答案没有信心,因为如果出于这个原因,AppCtrl也不应该在网络浏览器中工作。但值得尝试,将$ routeProvider更改为以下代码。

 $routeProvider.when('/deal/:id', 
 {
            templateUrl: '#deal',
            jqmOptions: { transition: 'slide' },
            controller: 'AppCtrl'
 });

此外,'DEVICE READY - ANGULAR DOCUMENT READY'是否出现了?