mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 23:58:13 +08:00
Cleaned up examples folder
This commit is contained in:
80
examples/starters/weather/app.js
Normal file
80
examples/starters/weather/app.js
Normal file
@ -0,0 +1,80 @@
|
||||
angular.module('ionic.weather', ['ionic.weather.services', 'ionic.weather.directives'])
|
||||
|
||||
.constant('WUNDERGROUND_API_KEY', '1cc2d3de40fa5af0')
|
||||
|
||||
.constant('FLICKR_API_KEY', '504fd7414f6275eb5b657ddbfba80a2c')
|
||||
|
||||
.filter('int', function() {
|
||||
return function(v) {
|
||||
return parseInt(v) || '';
|
||||
};
|
||||
})
|
||||
|
||||
.controller('WeatherCtrl', function($scope, $timeout, Weather, Geo, Flickr) {
|
||||
var _this = this;
|
||||
|
||||
$scope.activeBgImageIndex = 0;
|
||||
|
||||
$scope.getActiveBackgroundImage = function() {
|
||||
if($scope.activeBgImage) {
|
||||
var item = $scope.activeBgImage;
|
||||
var url = "http://farm"+ item.farm +".static.flickr.com/"+ item.server +"/"+ item.id +"_"+ item.secret +"_z.jpg";
|
||||
return {
|
||||
'background-image': 'url(' + url + ')'
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
this.getBackgroundImage = function(lat, lng) {
|
||||
Flickr.search('Madison, Wisconsin', lat, lng).then(function(resp) {
|
||||
var photos = resp.photos;
|
||||
if(photos.photo.length) {
|
||||
$scope.bgImages = photos.photo;
|
||||
_this.cycleBgImages();
|
||||
}
|
||||
}, function(error) {
|
||||
console.error('Unable to get Flickr images', error);
|
||||
});
|
||||
};
|
||||
|
||||
this.getForecast = function(lat, lng) {
|
||||
Weather.getForecast(lat, lng).then(function(resp) {
|
||||
console.log('Forecast', resp);
|
||||
$scope.forecast = resp.forecast.simpleforecast;
|
||||
}, function(error) {
|
||||
alert('Unable to get forecast');
|
||||
console.error(error);
|
||||
});
|
||||
};
|
||||
|
||||
this.getCurrent = function(lat, lng) {
|
||||
Weather.getAtLocation(lat, lng).then(function(resp) {
|
||||
$scope.current = resp.current_observation;
|
||||
_this.getForecast(resp.location.lat, resp.location.lon);
|
||||
}, function(error) {
|
||||
alert('Unable to get current conditions');
|
||||
console.error(error);
|
||||
});
|
||||
};
|
||||
|
||||
this.cycleBgImages = function() {
|
||||
$timeout(function cycle() {
|
||||
if($scope.bgImages) {
|
||||
$scope.activeBgImage = $scope.bgImages[$scope.activeBgImageIndex++ % $scope.bgImages.length];
|
||||
}
|
||||
//$timeout(cycle, 10000);
|
||||
});
|
||||
};
|
||||
|
||||
Geo.getLocation().then(function(position) {
|
||||
console.log('GOT LAT', position);
|
||||
var lat = position.coords.latitude;
|
||||
var lng = position.coords.longitude;
|
||||
|
||||
_this.getBackgroundImage(lat, lng);
|
||||
_this.getCurrent(lat, lng);
|
||||
}, function(error) {
|
||||
alert('Unable to get current location: ' + error);
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user