代码之家  ›  专栏  ›  技术社区  ›  bafix2203

$http具有特定url angularjs的$timeout

  •  -1
  • bafix2203  · 技术社区  · 6 年前

    这是我的代码: JS公司:

    var timer;
    $scope.getapi_url = function(n){
           var url = n;
            $http({
                method: 'GET',
                url: url,
            })
                .then(function successCallback(data) {
                    $scope.data = data.data;
                    console.log($scope,data);
                    timer = $timeout($scope.getapi_url(), 5000);
                }, function errorCallback(response) {
                    $scope.errorBackend = true;
                    console.log(response);
                    console.log('error');
                });
        };
    

    HTML格式:

    <button class="btn btn-clear btn-sm" ng-click="getapi_url('myurl') ">Click!</button>
    

    在第一次之后 $timeout 我有个错误,比如 n is undefinded

    我该怎么办?

    提前感谢所有的答案!!!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rahul Sharma    6 年前

    试试这个,但它永远不会停止,你必须停止手动使用 $timeout.cancel(timer); 是的。

    var timer;
    $scope.getapi_url = function (n) {
        var url = n;
        $http({
                method: 'GET',
                url: url,
            })
            .then(function successCallback(data) {
                $scope.data = data.data;
                console.log($scope, data);
                timer = $timeout($scope.getapi_url(n), 5000); 
                // passing n if you don't want check n value on starting of function.
            }, function errorCallback(response) {
                $scope.errorBackend = true;
                console.log(response);
                console.log('error');
            });
    };