未捕获的错误:[$injector:modulerr] 添加 $cordovaGeolocation 和 $ionicPopup 时无法实例化模块
Posted
技术标签:
【中文标题】未捕获的错误:[$injector:modulerr] 添加 $cordovaGeolocation 和 $ionicPopup 时无法实例化模块【英文标题】:Uncaught Error: [$injector:modulerr] Failed to instantiate module when adding $cordovaGeolocation and $ionicPopup 【发布时间】:2016-02-17 16:18:12 【问题描述】:我的应用程序运行良好,我安装了cordova geolocation,但在添加$cordovaGeolocation 和$ionicPopup 后没有任何效果,我重新编写了几次代码并检查并重新检查了拼写等。
这是我的错误:
未捕获的错误:[$injector:modulerr] 无法实例化模块 caffeinehit,原因是:错误:[$injector:modulerr] 无法实例化模块 caffeinehit.services,原因是:错误:[$injector:nomod] 模块 'caffeinehit.服务'不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
来自 app.js 的***代码:
var app = angular.module('caffeinehit', [
'ionic',
'ngCordova',
'caffeinehit.controllers',
'caffeinehit.services',
'caffeinehit.filters'
]);
services.js 代码:
var app = angular.module('caffeinehit.services', []);
app.service("YelpService", function ($q, $http, $cordovaGeolocation, $ionicPopup)
var self;
self =
'page': 1,
'isLoading': false,
'hasMore': true,
'results': [],
'lat': 51.545540,
'lon': -0.0223374,
'load': function ()
self.isLoading = true;
var deferred = $q.defer();
ionic.Platform.ready(function ()
$cordovaGeolocation
.getCurrentPosition(timeout: 10000, enableHighAccuracy: false)
.then(function (position)
self.lat = position.coords.latitude;
self.lon = position.coords.longitude;
后来在添加 $ionicPopup 时遇到问题:
, function (err)
console.error("Error getting position");
console.error(err);
$ionicPopup.alert(
'title': 'Please switch on your gps',
'template': "It seems like you switch off your gps, please turn it on"
);
【问题讨论】:
【参考方案1】:你需要在你的应用模块中包含 ionic 和 cordova
var app = angular.module('caffeinehit.services', ['ionic', 'ngCordova']);
【讨论】:
【参考方案2】:我发现了这个问题,一旦我改变了顺序并将 $ionicPopup 放在应用程序模块中的 $cordovaGeolocation 之前,它就起作用了。
【讨论】:
以上是关于未捕获的错误:[$injector:modulerr] 添加 $cordovaGeolocation 和 $ionicPopup 时无法实例化模块的主要内容,如果未能解决你的问题,请参考以下文章
错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`