Javascript setInterval函数不会更改视图中的$scope
我有一个客户端带有angular js和html的spring应用程序,我想每隔6秒更新视图中的信息,因为我调用了setInterval函数,但它不会更改视图 这是我的密码Javascript setInterval函数不会更改视图中的$scope,javascript,angularjs,Javascript,Angularjs,我有一个客户端带有angular js和html的spring应用程序,我想每隔6秒更新视图中的信息,因为我调用了setInterval函数,但它不会更改视图 这是我的密码 $scope.aat=function(){ $http.get("http://localhost:8080/projet/getInspectionEnCoursDinspection") .success(function (data) { $scope.tab1=d
$scope.aat=function(){
$http.get("http://localhost:8080/projet/getInspectionEnCoursDinspection")
.success(function (data) {
$scope.tab1=data;
console.log("size="+ $scope.inspectionEnCoursDinspection1.length);
})
} ,
setInterval(function(){ $scope.aat() },60000);
这是我的html视图
<table class="table table-bordered">
<tr ng-repeat="insp in tab1">
<td>Mat{{insp.vehicule.matricule}}
<div ng-repeat="aa in insp.tests">
Test<ul><li ng-repeat="defaut in aa.defauts">{{defaut.nomDefaut}}</li></ul>
</div>
</td>
<td><button ng-click="annulerTest()"
class="btn btn-default btnt">
<i class="glyphicon glyphicon-remove"></i>
</button></td>
</tr>
</table>
材料{{检查车辆矩阵}
测试- {{defaut.nomdfaut}
非常感谢您提供的任何帮助相关:
这是因为您正在使用setInterval用$scope.aat修改$scope.tab1
使用任何非Angular代码修改您的数据都会使您的视图不同步,因为Angular不知道该更改(它没有做这项工作,所以ofc它不知道)
您可以通过使用Angular的$interval
而不是setInterval来修复此问题,以重复更新。或者在$scope.aat
中添加$scope.apply()
在这种情况下,最好使用$interval$scope.apply()应该是最后的选择。
$scope.aat=function(){
$http.get("http://localhost:8080/projet/getInspectionEnCoursDinspection")
.success(function (data) {
$scope.tab1=data;
console.log("size="+ $scope.inspectionEnCoursDinspection1.length);
//this--->$scope.apply();
})
} ,
//OR this-->$interval(function(){ $scope.aat() },60000);
60000ms是每分钟一次,而不是每6秒一次。尝试使用$scope.apply
到$scope.aat
告诉Angular注册对数组的更改。好的,谢谢你@Bergi,但这不是问题,视图不会更改,除非我刷新页面$scope.aat=function(){$http.get("http://localhost:8080/projet/getInspectionEnCoursDinspectionsuccess(函数(数据){$scope.tab1=data;console.log(“size=“+$scope.inspectionEnCoursDinspection1.length);$scope.apply();})}
您应该尝试使用Angular的$interval,而不是plainJS的'SetInterval'。使用任何非Angular代码来转换Angular内容都会使您的视图不同步,除非您手动使用$scope.apply()
$interval…我尝试只使用.apply()当没有角度的选择时。@Tyler同意了,只是让OP知道他或她的选择干杯。对.apply()的解释对于其他无法内置的情况很有用。