©
Dokumen ini menggunakanManual laman web PHP CinaLepaskan
Angular's wrapper forwindow.setInterval
. Thefn
function is executed everydelay
milliseconds.
The return value of registering an interval function is a promise. This promise will be notified upon each tick of the interval, and will be resolved aftercount
iterations, or run indefinitely ifcount
is not defined. The value of the notification will be the number of iterations that have run. To cancel an interval, call$interval.cancel(promise)
.
In tests you can use$interval.flush(millis)
to move forward bymillis
milliseconds and trigger any functions scheduled to run in that time.
$interval(fn,delay,[count],[invokeApply]);
参数 | 类型 | 详述 |
---|---|---|
fn | function() | A function that should be called repeatedly. |
delay | number | Number of milliseconds between each function call. |
count
(可选)
|
number | Number of times to repeat. If not set, or 0, will repeat indefinitely. |
invokeApply
(可选)
|
boolean | If set to |
promise | A promise which will be notified on each iteration. |
cancel(promise);
Cancels a task associated with thepromise
.
参数 | 类型 | 详述 |
---|---|---|
promise | promise | returned by the |
boolean | 返回值 |
angular.module('intervalExample',[]).controller('ExampleController',['$scope','$interval',Function($scope,$interval){$scope.format='M/d/yy h:mm:ss a';$scope.blood_1=100;$scope.blood_2=120;varstop;$scope.fight=Function(){// Don't start a new fight if we are already fightingif(angular.isDefined(stop))return;stop=$interval(Function(){if($scope.blood_1>0&&$scope.blood_2>0){$scope.blood_1=$scope.blood_1-3;$scope.blood_2=$scope.blood_2-4;}else{$scope.stopFight();}},100);};$scope.stopFight=Function(){if(angular.isDefined(stop)){$interval.cancel(stop);stop=undefined;}};$scope.resetFight=Function(){$scope.blood_1=100;$scope.blood_2=120;};$scope.$on('$destroy',Function(){// Make sure that the interval nis destroyed too$scope.stopFight();});})// Register the 'myCurrentTime' directive factory method.// We inject $interval and dateFilter service since the factory method is DI..Directive('myCurrentTime',['$interval','dateFilter',Function($interval,dateFilter){// return the directive link function. (compile function not needed)returnFunction(scope,element,attrs){varformat,// date formatstopTime;// so that we can cancel the time updates// used to update the UIFunctionupdateTime(){element.text(dateFilter(newDate(),format));}// watch the expression, and update the UI on change.scope.$watch(attrs.myCurrentTime,Function(value){format=value;updateTime();});stopTime=$interval(updateTime,1000);// listen on DOM destroy (removal) event, and cancel the next UI update// to prevent updating time after the DOM element was removed.element.on('$destroy',Function(){$interval.cancel(stopTime);});}});ng-controller="ExampleController">Date format:ng-model="format">
Current time is:my-current-time="format">
Blood 1 :color='red'>{{blood_1}}Blood 2 :color='red'>{{blood_2}}