【发布时间】:2019-01-10 16:08:53
【问题描述】:
下面的代码块等待超时,然后执行带有承诺的 HTTP 请求,然后根据响应更改 Angular Material 范围变量。在输入字段上使用ng-change 调用它。我的 HTML 中还有一个带有 ng-hide="showStuff" 的元素,显然,当 $scope.showStuff 变为 false 时,我希望它立即消失。不幸的是,直到我在 DOM 中选择其他内容时它才会真正消失。
我之前使用过 Promise 来更改 DOM 中的内容,并且效果很好。为什么 DOM 不自行更新,我该如何解决?
$scope.checkSomething = function() {
// Use a timeout to prevent a checks from going off too rapidly
if (queryTimeout) {
clearTimeout(queryTimeout);
}
queryTimeout = setTimeout(function() {
bluebird.bind({}).then(function() {
return makeHttpRequest();
}).then(function(res) {
$scope.showStuff = res.data.length > 0;
})
}, 500);
}
【问题讨论】:
-
你是如何发出 HTTP 请求的?你在使用 AngularJS
$http服务吗?
标签: javascript html angularjs dom angularjs-material