AngularJs + jQUery Mobile无法在Phonegap中运行

时间:2014-11-25 07:27:27

标签: angularjs jquery-mobile cordova routing

我使用角度js和jquery mobile在PhoneGap上开始了我的项目。不知何故,路由工作正常,我用Google搜索并遇到了jquery mobile和angularjs here之间的冲突。

这是我得到的错误:

11-25 12:31:49.628: E/Web Console(7122): TypeError: Cannot call method 'charAt' of undefined
11-25 12:31:49.628: E/Web Console(7122):     at Object.LocationHashbangUrl.$$parse (file:///android_asset/www/lib/angularjs/angular.js:9321:41)
11-25 12:31:49.628: E/Web Console(7122):     at file:///android_asset/www/lib/angularjs/angular.js:9878:21
11-25 12:31:49.628: E/Web Console(7122):     at Scope.$eval (file:///android_asset/www/lib/angularjs/angular.js:12701:28)
11-25 12:31:49.628: E/Web Console(7122):     at Scope.$digest (file:///android_asset/www/lib/angularjs/angular.js:12513:31)
11-25 12:31:49.628: E/Web Console(7122):     at file:///android_asset/www/lib/angularjs/angular.js:9887:45
11-25 12:31:49.628: E/Web Console(7122):     at file:///android_asset/www/lib/angularjs/angular.js:4539:7
11-25 12:31:49.628: E/Web Console(7122):     at forEach (file:///android_asset/www/lib/angularjs/angular.js:325:18)
11-25 12:31:49.628: E/Web Console(7122):     at fireUrlChange (file:///android_asset/www/lib/angularjs/angular.js:4538:5)
11-25 12:31:49.628: E/Web Console(7122):     at m.event.dispatch (file:///android_asset/www/lib/jquery.js:3:8436)
11-25 12:31:49.628: E/Web Console(7122):     at r.handle (file:///android_asset/www/lib/jquery.js:3:5139) at file:///android_asset/www/lib/angularjs/angular.js:10071

是否有任何替代方法可以使这两者协同工作?

我正在使用1.2.25 angularjs和jQuery Mobile 1.4.5。

我的路线:

app.config(function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/', {
        templateUrl: 'assets/login/login.html',
        controller: 'LoginController',
    });
});

如果我将默认路线更改为:

app.config(function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/login', {
        templateUrl: 'assets/login/login.html',
        controller: 'LoginController',
    });
});

然后它就像魅力一样。

2 个答案:

答案 0 :(得分:0)

@QuickFix 谢谢我删除了JQM路由,它就像魅力一样。

答案 1 :(得分:0)

我最初通过引入

来解决同样的问题
serviceApp.config(['$routeProvider',

 function($routeProvider){

   $routeProvider.
   when('/services',{
      templateUrl : 'partials/services.html',
      controller : 'servicesCtrl'

   }).
    when('/service/:id',{
       templateUrl : 'partials/service-details.html',
       controller : 'serviceDetailsCtrl'

    }).otherwise({
        redirectTo: '/services'
    });


 }]);

但在其他情况下仍然面临同样的问题,然后在搜索谷歌后,弄清楚似乎jquery mobile和angularjs不兼容,但仍然需要jquery mobile进行某些操作,所以然后下载所需的jquery mobile模块我们需要触摸支持,然后单独使用模块