setInterval 和更新值 AngularJS
setInterval and updating values AngularJS
基于更改变量的值,我希望在 html 中显示一条错误消息。我从我的 angular 代码中调用了一个 api,如果它 returns 是一个错误,我已经设置了一个 setInterval 函数,该函数应该将 bookingData.tracking_id 更新为 false 然后显示一个错误html 中的消息。这应该很容易,但事实证明将其与 setInterval 结合起来有点困难。
这是angular/javascript
this.confirmTrackingTest = function () {
TestService.finalPackageCheck({tracking_id: controller.bookingData.tracking_id}).$promise.then(function (data) {
return data;
}).catch(function (err) {
var i = 0;
var interval = setInterval(function () {
i += 1;
if (i === 3) {
if (err.statusText === "Not Found") {
controller.bookingData.showErrorMessage = true;
}
clearInterval(interval)
}
}, 2000);
console.log(controller.bookingData.showErrorMessage)
});
}
this.bookingData = {
showErrorMessage: false,
tracking_id: 1
};
这里是html:
{{Packs.bookingData.showErrorMessage}}
<div class="alert alert-danger" role="alert" ng-if="Test.bookingData.showErrorMessage">
<p>Please show this message</p>
</div>
{{Packs.bookingData.showErrorMessage}}
显示错误,因此在 html 中被识别。
如果需要任何进一步的信息,请告诉我。
这正是Angular大神发明$interval
的原因,为了免去手动使用$apply
的需要。
因此,要么在回调中调用 $scope.$apply
,要么使用 $interval
(不要忘记将其包含在依赖注入的参数列表中)
基于更改变量的值,我希望在 html 中显示一条错误消息。我从我的 angular 代码中调用了一个 api,如果它 returns 是一个错误,我已经设置了一个 setInterval 函数,该函数应该将 bookingData.tracking_id 更新为 false 然后显示一个错误html 中的消息。这应该很容易,但事实证明将其与 setInterval 结合起来有点困难。
这是angular/javascript
this.confirmTrackingTest = function () {
TestService.finalPackageCheck({tracking_id: controller.bookingData.tracking_id}).$promise.then(function (data) {
return data;
}).catch(function (err) {
var i = 0;
var interval = setInterval(function () {
i += 1;
if (i === 3) {
if (err.statusText === "Not Found") {
controller.bookingData.showErrorMessage = true;
}
clearInterval(interval)
}
}, 2000);
console.log(controller.bookingData.showErrorMessage)
});
}
this.bookingData = {
showErrorMessage: false,
tracking_id: 1
};
这里是html:
{{Packs.bookingData.showErrorMessage}}
<div class="alert alert-danger" role="alert" ng-if="Test.bookingData.showErrorMessage">
<p>Please show this message</p>
</div>
{{Packs.bookingData.showErrorMessage}}
显示错误,因此在 html 中被识别。
如果需要任何进一步的信息,请告诉我。
这正是Angular大神发明$interval
的原因,为了免去手动使用$apply
的需要。
因此,要么在回调中调用 $scope.$apply
,要么使用 $interval
(不要忘记将其包含在依赖注入的参数列表中)