【发布时间】:2016-09-12 02:51:55
【问题描述】:
我试图在数据加载时显示加载图标,然后在数据准备好时显示数据。 问题是我等了几秒钟,我可以看到加载图标和数据...
这是我的代码
$scope.items[y].content.push({ text: '', loading: true });
API.getContent(id, x, y, function (response, x, y) {
$scope.items[y].content[x].loading = false;
$scope.items[y].content[x].text = response.data.text;
});
我的看法:
<i ng-show="item.loading" class="fa fa-spinner fa-pulse fa-2x"></i>
<p ng-hide="item.loading" class="portal-subtitle" ng-bind-html="item.text"></p>
我的内容是异步加载的。当我得到结果时,加载值设置为 false,所以此时图标应该是不可见的......但它不是! (如图所示)。
知道如何解决这个问题吗?
编辑:
我显示了我的“item.loading”的值。似乎当值从 true 变为 false 时,会显示文本,但图标仍会在这里停留几秒钟......这有帮助吗?
感谢您的帮助
【问题讨论】:
-
尝试先写 ng-hide 然后再写 ng-show。这样 DOM 就知道隐藏数据了。例如。
<p ng-hide="item.loading" class="portal-subtitle" ng-bind-html="item.text"></p><i ng-show="item.loading" class="fa fa-spinner fa-pulse fa-2x"></i> -
我试过..但遇到了同样的问题。图标就在文本之后。但仍然显示:/
-
您的 item.loading 工作正常吗?你试过
item.loading == true -
“正常工作”是什么意思?我只是将其设置为 true 或 false :/ 我尝试了“== true”,结果相同。我会更新我的问题以获取新信息
-
这可能是在回避手头的问题,但您是否尝试过使用 ng-if 而不是 ng-show?
标签: javascript html angularjs http-get