使用setInterval()在客户端更新值(angularJS)

时间:2014-10-26 02:49:17

标签: javascript json angularjs setinterval

我在客户端使用AngularJS作为价值计算器。我想使用setInterval()每5分钟更新一次这个计算器的主要值。

我的AngularJS代码是:

 $http({method: 'GET', url: '../assets/sources.json'}).success(function(data)
   {
      $scope.values = data; // response data

      $scope.getSourceValue = function(){

         if ($scope.source == "test") {

            return $scope.values.test["last"]

         } else if ($scope.source == "test1"){

            return $scope.values.test1["last"]

         } else if ($scope.source == "test2"){

            return $scope.values["test2"]["last"]

         } else {

            return -1
         };

      } // getSource
    } 

在客户端:

<strong><h1> {{getSourceValue()|currency}}</strong></h1>

有人能指出我正确的方向吗?

提前致谢。

更新:

{
    "timestamp": "Sun Sep 14 2014, 01:40:03",
    "bitstamp": {
        "display_URL": "http://www.bitstamp.net",
        "display_name": "Bitstamp",
        "currency": "BTC",
        "last": 477.6
    },
    "btc-e": {
        "display_URL": "http://www.btc-e.com",
        "display_name": "BTC-e",
        "currency": "BTC",
        "last": 471.5
    },
    "bitcoinaverage": {
        "display_URL": "http://api.bitcoinaverage.com",
        "display_name": "BitcoinAverage",
        "currency": "BTC",
        "last": 479.23
    },
    "geeklab": {
        "display_URL": "http://ws.geeklab.com.ar",
        "display_name": "Geeklab",
        "currency": "ARS",
        "blue": 14.35
    }
}

1 个答案:

答案 0 :(得分:0)

我会为别人发布解决方案。 我的方法:

angular.module('test', [])

   .controller('test', function($scope, $http, $filter, $interval) {



      var stop;

      if(!angular.isDefined(stop)) {
         stop = $interval(function(){


               $http({method: 'GET', url: '../assets/sources.json'}).success(function(data)
               {
                  $scope.values = data; // response data

                  $scope.svalue = 0;

                  $scope.getSourceValue = function(){

                     if ($scope.source == "bitcoinaverage.com") {

                        $scope.svalue = $scope.values.bitcoinaverage["last"]

                     } else if ($scope.source == "bitstamp.net"){

                        $scope.svalue = $scope.values.bitstamp["last"]

                     } else if ($scope.source == "btc-e.com"){

                        $scope.svalue = $scope.values["btc-e"]["last"]

                     } else {

                        $scope.svalue = -1
                     };

                  } // getSource


            });//  /success()


         }, 40000);
      }


}); /*Controller*/