【发布时间】:2016-07-29 18:29:50
【问题描述】:
我目前正处于通过 Ionic 构建应用程序天气的开始阶段。现在我想实现科尔多瓦地理定位,我有错误Unknown provider: $cordovaGeolocationProvider <- $cordovaGeolocation我尝试修复但没有成功,但是打开它时会一直出错。出于测试目的,我使用 ionic serve 并在 localhost 中检查它。
我的代码
(function() {
angular.module('app.weather', ['ionic'])
.factory('Weather', function($q, $http) {
var deferred = $q.defer();
function getCurrentWeather(lat, lng) {
var url = 'https://api.forecast.io/forecast//' + lat + ',' + lng + '?callback=JSON_CALLBACK';
$http.jsonp(url)
.success(deferred.resolve)
.error(deferred.reject);
return deferred.promise;
}
return {
getCurrentWeather: getCurrentWeather
};
})
.controller('WeatherCtrl', function($scope, $cordovaGeolocation, Weather) {
$scope.loading = true;
$scope.toCelsius = function(temperature) {
return ((temperature - 32) / 1.8).toFixed(1);
};
$cordovaGeolocation
.getCurrentPosition({
timeout: 10000,
enableHighAccuracy: false
})
.then(function(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
Weather.getCurrentWeather(lat, long).then(function(data) {
$scope.weatherInfo = data;
$scope.loading = false;
}, function(error) {
//TODO Display error message
});
}, function(err) {
//TODO Display error message
});
});
})();
代码html
<ion-view title="الرئيسية" id="page2" style="background-color:#FFFFFF;" class=" ">
<ion-content padding="true" class="has-header">
<ion-pane>
<div ng-controller="WeatherCtrl as weatherCtrl">
<div ng-show="loading">
Carregando informações...
</div>
<div ng-hide="loading">
<p>
Temperatura: {{toCelsius(weatherInfo.currently.temperature)}}º
</p>
<p>
Sensação térmica: {{toCelsius(weatherInfo.currently.apparentTemperature)}}º
</p>
</div>
</div>
</ion-content>
</ion-view>
【问题讨论】:
-
你包含
ng-cordova文件吗?