AngularJS 1.4 Factory

Factory mit regelmäßigem Update

by Erik Wegner

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
<div ng-app="myApp">
    <div ng-controller="AbcCtrl">Seconds
        <ul>
            <li ng-repeat="s in seconds">{{s}}</li>
        </ul>
    </div>
</div>

JavaScript

var frontpageApp = angular.module("myApp", []);

frontpageApp.factory(
    'DataProvider', ['$rootScope',

function ($rootScope) {
    var k = {}
    k.items = []

    timerhandle = 0

    k.startTimer = function () {
        if (timerhandle > 0) return;
        timerhandle = window.setInterval(tick, 1000);
    }

    tick = function () {
        var sec = (new Date).getSeconds() % 10;
        while (k.items.length > sec + 1) k.items.pop();
        while (k.items.length < sec + 1) {
            k.items.push(k.items.length.toString());
        }
        
        $rootScope.$apply();
    }


    return k
}]);

frontpageApp.controller(
    "AbcCtrl", ['$scope', 'DataProvider',

function ($scope, $dp) {
    $scope.seconds = $dp.items;
    $dp.startTimer();
}]);