使用 json 数据并将其显示在列中

Posted

技术标签:

【中文标题】使用 json 数据并将其显示在列中【英文标题】:Consuming json data and displaying it in columns 【发布时间】:2018-08-20 20:38:57 【问题描述】:

我想通过angular js显示如下图所示的json数据。

https://randomuser.me/api/?results=30&nat=US

json 用户列表

【问题讨论】:

【参考方案1】:

我们可以对结果使用 ng-repeat 逻辑并将其绑定到表

<!DOCTYPE html>
<html>

<head>
  <script data-require="jquery@3.0.0" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
  <link data-require="bootstrap@3.3.7" data-semver="3.3.7" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
  <script data-require="angular.js@1.6.6" data-semver="1.6.6" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
  <script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.6.0.js" type="text/javascript"></script>
  <script>
    (function() 

      angular.module("testApp", ['ui.bootstrap']).controller('testCtrl', ['$scope', '$http', function($scope, $http) 
        $scope.userData = undefined;
        $scope.selectedUser = undefined;
        $http.get('https://randomuser.me/api/?results=30&nat=US').then(function(response) 
          $scope.userData = response.data;
        );
        $scope.selectUser = function(usr)
          $scope.selectedUser=usr;
        ;
      ]);


    ());
  </script>
  <style>
    .userInfo
      border: 1px solid #ccc;
      margin-top:10px;
      padding:5px;
      cursor: pointer;
    
    
    .userInfo:hover
      background: #ccc;
    
    
    .profile
      padding-left: 0px;
      padding-right: 0px;
    
    .ellipsis
      white-space: nowrap; 
      overflow: hidden;
      text-overflow: ellipsis;
    
  </style>
</head>

<body ng-app="testApp">
  <div ng-controller="testCtrl">
    <form name="commonForm">
      <div ng-hide="selectedUser">
        <div class="col-sm-4 userInfo" ng-repeat="user in userData.results" ng-click="selectUser(user)" >
            <img class="col-sm-4 profile" ng-src="user.picture.medium"/>
            <div class="col-sm-8">
                <div class="ellipsis"><b>user.name.first user.name.last</b></div>
                <div class="ellipsis">user.email</div>
            </div>
        </div>
      </div>
      
      
      
      <div ng-show="selectedUser">
        <button ng-click="selectedUser = undefined">Go Back</button>
        <br />
        <br />
        <img class="col-sm-4 profile" ng-src="selectedUser.picture.large"/>
        
        <div class="col-sm-4">
          <div class="form-group">
            <label for="first">First Name:</label>
            <input type="text" class="form-control" id="first" ng-model="selectedUser.name.first">
          </div>
          
          <div class="form-group">
            <label for="last">Last Name:</label>
            <input type="text" class="form-control" id="last" ng-model="selectedUser.name.last">
          </div>
          
          <div class="form-group">
            <label for="username">Login:</label>
            <input type="text" class="form-control" id="username" ng-model="selectedUser.login.username" disabled>
          </div>
          
          <div class="form-group">
            <label for="email">Email:</label>
            <input type="text" class="form-control" id="email" ng-model="selectedUser.email">
          </div>
          
          <div class="form-group">
            <label for="dob">Date of Birth:</label>
            <input type="text" class="form-control" id="dob" ng-model="selectedUser.dob">
          </div>
        </div>
        
        <div class="col-sm-4">
          <div class="form-group">
            <label for="nat">Nationality:</label>
            <input type="text" class="form-control" id="nat" ng-model="selectedUser.nat">
          </div>
        </div>
      </div>

    </form>

  </div>
</body>

</html>

【讨论】:

兄弟,我们可以在我的意思是 3 列网格布局的布局中得到这个 两种方式都可以。您不想在表格中显示数据,而是希望它采用 3 列网格布局? 更新了代码 sn-p。请在整页视图中查看 是的,兄弟,当我们单击特定用户时,我们可以在其他页面中获取特定用户数据吗? imgur.com/a/lMVCn 当用户被点击时,我们会显示他的图像,而图像的其余部分就像我附加的图像一样

以上是关于使用 json 数据并将其显示在列中的主要内容,如果未能解决你的问题,请参考以下文章

识别包含单词的句子,并使用 str.contains 在列中显示该单词

使用 One Hot 编码后在列中显示特征名称

SQL:您如何在列中显示占总数的百分比?

MariaDB / pymysql:数据在列中显示为十六进制值(0x5761746572 而不是“水”)

PHP在列中显示数组

如何使用模式列表在列中查找字符串并将匹配的模式添加到下一列的同一行