javascript - 在 AngularJS 中加载 JSON 数据之前出现 "loading"或 "wait"消息

标签 javascript angularjs json smarty loading

我已经看到了一些关于如何使用 $http get() 请求从 URL 或单独文件加载 JSON 数据之前放置等待消息的解决方案,但我还没有在 HTML 中看到具有 smarty 格式的 JSON文件本身。在本例中,{$data} 是我的 JSON 数组,如下所示 {"title":"A2378","sub_name":"A2333", .....}。在我的 json 加载到 html 文件之前,有什么简单的方法可以放置等待消息吗?

<script type="text/javascript">
var app= angular.module('mysearch', []);
app.controller('mysearchController', ['$scope', function($scope){
        $scope.products = {$data}; 
]);
</script>

<div ng-app="mysearch">
   <div ng-controller="mysearchController">
      <div ng-repeat="item in products">
           {{item.sub_name}}
      </div>
      <p> {{item.title}}</p>
   </div>
</div>

提前致谢!

最佳答案

只需在您的范围中设置一个标志来指示您是否已加载数据:

<div ng-app="mysearch">
   <div ng-controller="mysearchController">
      <div ng-if="!loaded">Loading...</div>
      <div ng-if="loaded">
        <div ng-repeat="item in products">
           {{item.sub_name}}
           <p> {{item.title}}</p>
        </div>
      </div>
   </div>
</div>

然后,当您完成加载数据时,您的 Controller 可以将该标志设置为 true。例如:

app.controller('mysearchController', ['$scope', function($scope){
    $scope.loaded = false;
    $http.get('...').then(function(response) {
         $scope.products = response.data;
         $scope.loaded = true;
    });
]);

显然,如果您通过其他机制加载数据,您的代码看起来不会完全像这样,但想法是相同的,只需在数据完全加载时切换一个标志即可。

关于javascript - 在 AngularJS 中加载 JSON 数据之前出现 "loading"或 "wait"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595305/

相关文章:

javascript - Eslint 不适用于本地系统

javascript - Ionic ng-hide/ng-show 滚动问题

angularjs - Angularjs 中的 Kendo UI 编辑器事件

javascript - $ionicPlatform onHardwareBackButton 运行多次

javascript - 更改嵌套 ng-repeat 中的 $http 参数

javascript - CSS 选择器无法使用 jQuery

javascript - 使用状态参数在 Controller 中注入(inject)数据的更好方法。我不希望 url 更新我传递的内容

javascript - promise Socket.IO/EventEmitter

javascript - D3 使用图案用图像填充形状

javascript - 在多个 url 字符串上使用 .indexOf