我将简单的实用功能集成到角度应用程序中。如何在我的角度应用中将变量utc
显示在页面上?它还没有出现:(这是我采取的步骤。基本上我想我需要将以下代码段重构为服务。
var offset = - new Date().getTimezoneOffset();
var utc = ((offset > 0 ? '+' : '') + offset / 60);
document.write(utc);
这是我的服务......不确定这是否正确,因为它还没有工作。
(function () {
'use strict';
angular.module('weatherapp.weatherlist')
.factory('utcFactory', function utcFactory() {
return {
myUTC: function() {
var offset = - new Date().getTimezoneOffset();
var utc = ((offset > 0 ? '+' : '') + offset / 60);
return utc;
}
};
}
})();
这是控制器:
(function () {
'use strict';
angular.module('weatherapp.weatherlist', ['weatherapp.locations'])
.controller('WeatherlistController', ['$scope', 'LocationService', 'WEATHER_API_URL', 'WEATHER_API_IMAGE_URL', 'WEATHER_API_ID', 'WeatherListFactory', 'utcFactory',WeatherListCtrl]);
function WeatherListCtrl($scope, LocationService, WEATHER_API_URL, WEATHER_API_ID, WEATHER_API_IMAGE_URL, WeatherListFactory, utcFactory) {
$scope.$on('$ionicView.enter', function(){
$scope.locationData= [];
//TODO Show empty String when no locations are set.
var locations = LocationService.getLocations();
$scope.noLocation=locations.length<1;
if (!$scope.noLocation){
locations.forEach(function (location) {
WeatherListFactory.getWeatherData(WEATHER_API_URL + 'q=' + location + '&appid=' + WEATHER_API_ID).then(function (response) {
response.data.weather[0].icon=WEATHER_API_IMAGE_URL+response.data.weather[0].icon+'.png';
$scope.locationData.push(response.data);
});
});
}
});
}
})();
以下是我试图在视图中绑定它的方式,我还需要除此之外的其他内容吗? <span class="tiny">{{utc}}</span>
我做错了什么?有没有更好的方法来解决这个问题?对于这么简单的事情似乎有点过头了。
答案 0 :(得分:1)
工厂没有自己的范围。因为您已经在控制器中注入了utcFactory
。将服务返回绑定到$scope.utc
:
utcFactory.myUTC().then(function(results) {
$scope.utc = results.data;
});