Javascript 安格拉斯钟表厂

Javascript 安格拉斯钟表厂,javascript,angularjs,web-applications,Javascript,Angularjs,Web Applications,我正在重构我正在编写的一个web应用程序,如果可能的话,我想将一个控制器移动到工厂中,以获得正确的结构,这样我就可以在整个应用程序的不同控制器中包含它。我似乎不知道该如何使用$timeout。我想通过在偏移量中传递一个函数来删除冗余代码 必修课:我对AngularJS不熟悉 App.controller('TimeCtrl', ['$scope','$timeout', function($scope, $timeout){ // Set and update clocks va

我正在重构我正在编写的一个web应用程序,如果可能的话,我想将一个控制器移动到工厂中,以获得正确的结构,这样我就可以在整个应用程序的不同控制器中包含它。我似乎不知道该如何使用$timeout。我想通过在偏移量中传递一个函数来删除冗余代码

必修课:我对AngularJS不熟悉

App.controller('TimeCtrl', ['$scope','$timeout', function($scope, $timeout){
    // Set and update clocks
    var update = function(){
        $scope.est_time = moment.utc().add(-5, 'hours').format('h:mm:ss A');
        $scope.cst_time = moment.utc().add(-6, 'hours').format('h:mm:ss A');
        $scope.cet_time = moment.utc().add(+1, 'hours').format('h:mm:ss A');
        $scope.ist_time = moment.utc().add(+5.5, 'hours').format('h:mm:ss A');
        $timeout(update, 1000);
    };
    update();
}]);
是否有可能将其移动到工厂中,以便最终在我的视图中使用{{Time.getTime-5}}?甚至只是时间。在控制器中获取时间

我想到了这个。虽然它可以工作,但我不知道如何合并$timeout功能

App.factory('Time', ['$timeout', function($timeout){
    return {
        getTime: function (tz){
            return moment.utc().add(tz, 'hours').format('h:mm:ss A');
        }   
    };
}]);

谢谢

工厂返回本机js对象。上面的返回可以写任何函数。试试看

App.factory('Time', ['$interval', function($interval){
    var utc;
    $interval(function() {
        utc = moment.utc();
    }, 1000);

    return {
        getTime: function (tz){
            return utc.add(tz, 'hours').format('h:mm:ss A');
        }   
    };
}]);

我想补充以上内容。过滤器以角度存在。过滤器转换数据:获取数据模型并返回格式化数据。也许,你需要它。更多信息:

这看起来不像我想要的那样持续更新。该方法渲染后会被破坏吗?@Randy,为什么不继续?看见工厂将一直存在到应用程序存在。感谢JSFIDLE。我发现了我的问题。这一刻很痛苦。