我在從此函數內更新我的作用域時遇到問題updateRefresh()
。第一次迭代我可以看到message == "test"
,然後它覆蓋什麼是在範圍內,但它是我的HTML頁面,<span>{{refreshDomainStatus.message}}</span>
的結合,仍然與其中message="test"
在http調用中未更新的作用域綁定
我試圖$scope.$apply()
但它的對象說$digest
目前正在進行中。
app.controller('AssessmentController', ['$scope', '$http', '$timeout', 'ConnectionService', function ($scope, $http, $timeout, connectionService) {
$scope.refreshDomainStatus = {
message: "test"
};
var updateRefresh = function(updateKey) {
$http.get('/assessment/api/update-refresh-domain/' + updateKey).success(function(response) {
$scope.refreshDomainStatus = response.refreshDomainStatus;
if (!response.refreshDomainStatus.halted) {
$timeout(function() { updateRefresh(updateKey); }, 250);
}
});
}
如果您'的console.log(response.refreshDomainStatus);''你updateRefresh()'方法中的輸出是什麼?此外,顯而易見的問題,但你調用'updateRefresh()'某處開始整個循環,對吧? – Lex
是的,我打電話來開始整個過程。第一次迭代:'response.refreshDomainStatus => Object {error:false,message:「檢索用戶列表」,暫停:false}'。 '$ scope.refreshDomainStatus => Object {error:true,message:「test」,halted:false}'。在第二次迭代$ scope.refreshDomainStatus已經設置。似乎是正確的。當我檢查仍然表示「test」的元素的範圍時:angular.element($ 0).scope()。refreshDomainStatus => Object {message:「test」,halted:false,error:false}' – Bluebaron