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

Susan Sarandon
Lepaskan: 2024-10-25 10:30:02
asal
327 orang telah melayarinya

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);
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk
<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;
}
Salin selepas log masuk

Lajur CSS

Satu lagi penyelesaian elegan melibatkan memanfaatkan lajur CSS:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!