javascript - 使用 flexbox 显示数据

标签 javascript html css angularjs flexbox

我使用 flexbox 并循环遍历数据集并打印出数据。

我的代码是:

<div ng-app="myapp" ng-controller="FirstCtrl">

    <div ng-repeat="name in names" class="graph-wrapper">
        <div class="aside-1 content">
            {{name.first}}
        </div>

        <div class="graph-main content">
            {{name.address}}
        </div>
    </div>
</div>

和 Controller :

var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
    $scope.names = [
        { id: 1, first: 'John', address: 'xxxxxxxxxxxxx' },
        { id: 2, first: 'Rocky', address: 'yyyyyyyyyyyyyy' },
        { id: 3, first: 'John', address: 'ttttttttttttttt' },
        { id: 4, first: 'Ben', address: 'pppppppppppppppp' }
    ];
});

还有 CSS:

.graph-wrapper {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;  

  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

.graph-wrapper > * {
    flex: 1 50%;
    order: 1;
}

.graph-main {
  flex: 12 0px; 
}

.aside-1 { 
  flex: 1; 
}

.content {
  border: 1px grey solid;
}

但是我最终得到的是这样的:

enter image description here

但是,我希望它看起来像这样(数据的顺序并不重要):

enter image description here

是否可以在一个循环中执行此操作?

这个 fiddle 是 here .

最佳答案

您还可以将主容器设置为 flex-box : https://codepen.io/gc-nomade/pen/aWBxPV

var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function($scope) {
  $scope.names = [{
      id: 1,
      first: 'John',
      address: 'xxxxxxxxxxxxx'
    },
    {
      id: 2,
      first: 'Rocky',
      address: 'yyyyyyyyyyyyyy'
    },
    {
      id: 3,
      first: 'John',
      address: 'ttttttttttttttt'
    },
    {
      id: 4,
      first: 'Ben',
      address: 'pppppppppppppppp'
    }
  ];
});
.flex {
  display: flex;
  flex-wrap: wrap;
}

.graph-wrapper {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  width: 50%;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

.graph-wrapper>* {
  flex: 1 50%;
  order: 1;
}

.graph-main {
  flex: 4;
}

.aside-1 {
  flex: 1;
}

.content {
  border: 1px grey solid;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>

<div ng-app="myapp" ng-controller="FirstCtrl" class="flex">

  <div ng-repeat="name in names" class="graph-wrapper">
    <div class="aside-1 content">
      {{name.first}}
    </div>

    <div class="graph-main content">
      {{name.address}}
    </div>
  </div>
</div>

关于javascript - 使用 flexbox 显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43634444/

相关文章:

javascript - DiscordJS 如何编辑消息?

javascript - Javascript教程中遇到的好奇心

html - 不知道标题高度的CSS高度100%

css - Bootstrap - 如果列加起来不等于 12,则列居中

javascript - jQuery 鼠标悬停获取不正确的 ID

javascript - 对于 D3 堆叠条,我如何知道鼠标位于哪个条中?

javascript - 加载页面后在 webview 的字段中以编程方式输入文本

javascript - 当用户按下后退按钮时强制重新提交表单

html - 在圆圈内创建三个垂直点(省略号)

javascript - 将字符串中的第一个字母放在字符串的末尾