PhoneGap:角度控制器不起作用

PhoneGap: Angular controllers don't work

本文关键字:控制器 不起作用 PhoneGap      更新时间:2023-09-26

我有一个HTML单页Web应用程序,我正在尝试将其转换为Windows Phone 8的PhoneGap应用程序。

该应用程序使用Angular和jQuery Mobile,为了获得两个合作,我不得不使用jquery-mobile-angular-adapter。该应用程序在所有浏览器中都能正常工作,包括诺基亚Lumia Windows Phone上的IE 10移动版。

当我在设备上作为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');
   });
我认为

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

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

此外,是否显示了"设备就绪 - 角度文档就绪"?