将简单的实用程序功能集成到角度应用程序

时间:2016-07-05 05:19:55

标签: angularjs

我将简单的实用功能集成到角度应用程序中。如何在我的角度应用中将变量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>

我做错了什么?有没有更好的方法来解决这个问题?对于这么简单的事情似乎有点过头了。

1 个答案:

答案 0 :(得分:1)

工厂没有自己的范围。因为您已经在控制器中注入了utcFactory。将服务返回绑定到$scope.utc

utcFactory.myUTC().then(function(results) { 
   $scope.utc = results.data;
});