Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mengedarkan data ng-repeat ke dalam lajur menggunakan Bootstrap dalam AngularJS?

Bagaimana untuk mengedarkan data ng-repeat ke dalam lajur menggunakan Bootstrap dalam AngularJS?

Susan Sarandon
Susan Sarandonasal
2024-10-25 10:30:02328semak imbas

How to distribute ng-repeat data into columns using Bootstrap in AngularJS?

Mengedarkan Data ng-Repeat ke dalam Lajur Menggunakan Bootstrap

Dalam AngularJS, memanfaatkan ng-repeat adalah asas apabila bekerja dengan data berulang. Walau bagaimanapun, keperluan sering timbul untuk menyusun elemen ini ke dalam reka letak yang menarik secara visual, seperti tiga lajur yang berbeza. Untuk mencapai matlamat ini, kami menyelidiki pelbagai pendekatan, termasuk penyelesaian peringkat pengawal dan peringkat pandangan.

Transformasi Tahap Pengawal

Pendekatan yang mantap terletak pada mengubah data dalam pengawal. Dengan memanfaatkan fungsi ketulan yang disediakan, kami boleh membahagikan data ke dalam subbarray yang sama, setiap satu mewakili satu lajur:

<code class="javascript">function chunk(arr, size) {
  var newArr = [];
  for (var i=0; i<arr.length; i+=size) {
    newArr.push(arr.slice(i, i+size));
  }
  return newArr;
}

$scope.chunkedData = chunk(myData, 3);

Data ini kemudiannya boleh diberikan menggunakan ng-ulang bersarang, seperti berikut:

<code class="html"><div class="row" ng-repeat="rows in chunkedData">
  <div class="span4" ng-repeat="item in rows">{{item}}</div>
</div></code>

Penapisan Tahap Paparan

Sebagai alternatif, penapis boleh digunakan untuk mencapai reka letak yang diingini dalam paparan. Walau bagaimanapun, pendekatan ini bertujuan terutamanya untuk tujuan paparan dan mungkin menghadapi masalah apabila memasukkan elemen input:

<code class="html"><pre class="brush:php;toolbar:false"><div ng-repeat="row in ['a','b','c','d','e','f'] | chunk:3">
  <div class="column" ng-repeat="item in row">
    {{($parent.$index*row.length)+$index+1}}. {{item}}
  </div>
</div>

Lajur Menegak

Untuk mengagihkan item secara menegak dan bukannya mendatar, sedikit perubahan kepada pendekatan yang disebutkan di atas boleh dibuat:

<code class="html"><div ng-repeat="row in columns">
  <div class="column" ng-repeat="item in row">
    {{item}}
  </div>
</div></code>
<code class="javascript">var data = ['a','b','c','d','e','f','g'];
$scope.columns = columnize(data, 3);
function columnize(input, cols) {
  var arr = [];
  for(i = 0; i < input.length; i++) {
    var colIdx = i % cols;
    arr[colIdx] = arr[colIdx] || [];
    arr[colIdx].push(input[i]);
  }
  return arr;
}

Lajur CSS

Satu lagi penyelesaian elegan melibatkan memanfaatkan lajur CSS:

<code class="css">.columns {
  columns: 3;
}
<code class="html"><div class="columns">
  <div ng-repeat="item in ['a','b','c','d','e','f','g']">
    {{item}}
  </div>
</div></code>

Atas ialah kandungan terperinci Bagaimana untuk mengedarkan data ng-repeat ke dalam lajur menggunakan Bootstrap dalam AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn