对于CoffeeScript和AngularJS来说,我是一个完全新手,现在我正试着同时学习这两个。
我有一个AngularJS控制器正在触发$ http请求来读取值。这个CoffeeScript工作正常:
angular.module('app.controllers', []).controller('SalesTodayCtrl', [
'$scope','$http'
($scope, $http) ->
$http.get('http://myserver/sales/today/count').success (data) ->
$scope.salesToday = data ])
现在我需要每分钟刷新一次这个控制器。任何人都可以为我提供具体的代码示例,说明如何操作?使用尽可能少的伪代码。
非常感谢帮助!
答案 0 :(得分:0)
只是一个伪代码。我没有测试它,但确定它应该工作
countUp = ->
$http.get('http://myserver/sales/today/count').success (data) ->
$scope.salesToday = data
return
$timeout countUp, 500
答案 1 :(得分:0)
首先,我在你的控制器上定义一个更新方法:
$scope.url = 'http://myserver/sales/today/count'
$scope.success = (data) ->
$scope.salesToday = data
$scope.update = () ->
$http.get($scope.url).success $scope.success
然后提供服务来处理'每分钟'位。您可以使用Angular提供的$interval
服务。
app.service 'Refresh', ($interval) ->
@every = (update, ms) ->
$interval update, ms
最后,将Refresh
服务注入控制器并使用更新功能调用它。
app.controller 'SalesTodayCtrl', ($scope, $http, Refresh) ->
# ... the other code
Refresh.every $scope.update, 60000
这使用setInterval
作为底层机制,但由于它是通过Angular的间隔包装器使用的,因此您无需担心手动触发摘要。
如果您需要以1分钟的间隔进行刷新,那么您可能会遇到setInterval
issues。您可能希望使用requestAnimationFrame
来研究增量时间。