$ timeout没有使用$ HTTP触发

时间:2014-11-13 15:14:49

标签: angularjs

我继承了一个网站,我正在努力完成最后一部分。在所有其他控制器上,我添加了

的变体
$timeout(function(){  //Issue is this doesn't seem to timeout...
                     $scope.rTapTopNumbersContainer = document.getElementById('rtap-quote-summary');
                     rTapNotifyDOMChange($scope.rTapTopNumbersContainer);
                }, 100); 

但是在这个最终的控制器上,我似乎无法在控制器中的任何地方添加此代码,而角度代码不起作用,或者我现在拥有它,超时。我需要触发超时然后更新HTML DOM。

如果我把它放在.success中,则超时似乎不起作用。我在哪里可以放置此代码,或者如何在$ http触发后调用此代码?

app.controller('summary', ['$scope', '$http', function($scope, $http, $timeout) {

var init = function () {
    $http({
            method: 'GET',
            url: $scope.api + 'sites/site/?title=' + $scope.site 
        }).
            success(function(data, status, headers, config) {

            ...assign vars to scope etc...

            $timeout(function(){  //Issue is this doesn't seem to timeout...
                 $scope.rTapTopNumbersContainer = document.getElementById('rtap-summary');
                 rTapNotifyDOMChange($scope.rTapTopNumbersContainer);
            }, 100); 

        }).
            error(function(data, status, headers, config) {
        });
    }
init();
}]);

1 个答案:

答案 0 :(得分:2)

也许你没有正确导入$ timeout?

app.controller('summary', ['$scope', '$http', '$timeout', function($scope, $http, $timeout) { // twice
//                           1.         2.        3.                 1.      2.       3.

}]);