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

时间:2015-01-19 10:08:37

标签: javascript angularjs

在控制器内部,有一个函数可以向服务器发送$ http请求,当它收到响应时,就会分配该响应,比如说。 $ scope.number!

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

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

问题是,单位我从服务器得到响应,它在浏览器中显示“未定义”。

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

更新

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

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

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

这显示'未定义'并将其初始化为:

$scope.group.student.average_progress = 0

没有帮助

6 个答案:

答案 0 :(得分:3)

使用: -

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

答案 1 :(得分:0)

我认为在$scope.number = 0请求之前设置$http会有效。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用ng-show =&#34; number&#34;在同一个标​​签上,还有ng-init =&#34; number = default&#34;

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

在调用$ http

之前,只需将值设置为0即可
$scope.number = 0