2014-01-07 196 views
2

我有一個angularjs應用程序與兩個控制器,他們將使用相同的工廠獲取時間。這主要是因爲當你切換控制器時鐘將會持續。我曾對工廠做過幾次不同的嘗試和暗示,以及它如何被控制器召喚,但目前爲止還沒有工作。angularjs兩個控制器共享工廠

會有人介意看我的代碼,並告訴缺少什麼?

app.controller('SettingsCtrl', function($scope, DateService) { 
    $scope.date = DateService.updateTime; 

    DateService.tick(); 
}); 


app.factory('DateService', function($timeout) { 
    var service = { 
     updateTime: {}, 
     tick: function() { 
      service.updateTime = new Date(); 
      // runs update function every second 
      $timeout(service.tick, 1000); 
     } 
    }; 
    return service; 

}); 

我知道我需要將揭開序幕在控制器中,我正努力實現與DateService.tick()

回答

2

,如果你想,那$ scope.date有超時()實際時間您需要觀看的正常運行時間 - 像這樣:

$scope.$watch(
    function() { return DateService.updateTime; }, 
    function(newValue){ $scope.date = newValue;} 
); 

這裏是一個plunkr:http://plnkr.co/edit/2obW7z?p=preview

+0

非常感謝你,是照顧它。 – appthat