值是未定义的,直到响应出现在 AngularJS 中

value is undefined untill response comes in angularjs

本文关键字:AngularJS 响应 未定义      更新时间:2023-09-26

控制器内部,有一个函数将$http请求发送到服务器,当它获得响应时,它会将该响应分配给,比方说。 $scope.数字!

我在 html 页面中显示该 $scope.number:

<p ng-bind="number"></p>

问题是,单元I从服务器获得响应,它在浏览器中显示"未定义"。

如何为其提供默认值?我的意思是,在响应到来之前,我怎么能显示 0?

更新:

抱歉,但我试图简化情况,但我认为我举了一个不好的例子。

实际上,请求得到一个对象:$scope.group!此对象包含学生列表。我的 html 看起来像这样:

<div ng-repeat="student in group">
    <p ng-bind="student.average_progress"></p>
</div>

这显示"未定义"并像这样初始化它:

$scope.group.student.average_progress = 0

没有帮助

用途:-

<p ng-bind="number=number || 0"></p>

我认为在$http请求之前设置$scope.number = 0会起作用。

在控制器中,在调用服务之前初始化变量 $scope.number = 0,当从服务器收到响应时,将 $scope.number 的值重新分配给来自服务器的值。 因此,在从服务器收到响应之前,该值将为零

你可以在同一标签上使用ng-show="number",也可以使用ng-init="number=default"

在控制器定义中设置$scope.number = 0。它应该是这样的:

.controller('MyController', function() { 
$scope.number = 0; 
(...)
});
只需在

调用 $http 之前将值设置为 0

$scope.number = 0