1
我正在重構我正在編寫的Web應用程序,並想將控制器移到工廠中(如果可能的話,正確的結構),以便我可以將它包含在我的不同控制器中應用程序。我似乎無法包圍我的頭如何使用$超時。我想通過在偏移量中傳遞一個函數來刪除多餘的代碼。
強制性:我是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)}}
?或者甚至只在控制器中使用Time.getTime()
?
我想出這個。雖然它的工作原理,我不知道如何納入$timeout
功能。
App.factory('Time', ['$timeout', function($timeout){
return {
getTime: function (tz){
return moment.utc().add(tz, 'hours').format('h:mm:ss A');
}
};
}]);
謝謝!
這似乎並不像我想要的那樣持續更新。渲染後該方法是否被破壞? – Randy 2014-11-23 03:30:13
@Randy,爲什麼不連續?請參閱[jsfiddle](http://jsfiddle.net/Fenex/c941g14g/)。工廠一直活到你的應用程序還在 – Fenex 2014-11-23 12:35:01
感謝jsfiddle。我發現我的問題。時刻是一種痛苦。 – Randy 2014-11-23 23:41:46