Vòng lặp b:loop trong blogspot

b:loop là một thẻ không thể thiếu khi các ông thiết kế blogspot. Nhất và ở phiên bản mới của blogger. Nhờ thẻ b:loop mà các ông mới có thể hiển thị được các bài viết của mình ra ngoài trang chủ, trang lưu trữ,... và hiển thị bài viết của mình, lặp nhãn trong bài viết,...

Vòng lặp b:loop trong blogspot

Vòng lặp b:loop trong blogspot

Vậy thì b:loop là gì và sử dụng b:loop như thế nào?

Trong thiết kế blogspot template thì một vòng lặp được triển khai bằng cách sử dụng thẻ b:loop và nó nhận dữ liệu từ mảng được cung cấp qua thuộc tính values sẽ đề cập tới trong bài viết.

Cú pháp cơ bản của thẻ b:loop

Đây là cú pháp cơ bản nhất và cũng là cú pháp bắt buộc của mọi thẻ b:loop khi chúng luôn cần phải yêu cầu hai thuộc tính cơ bản của mỗi vòng lặp đó là {ARRAY}{VARIABLE_NAME}

<b:loop values='{ARRAY}' var='{VARIABLE_NAME}'>
  <!-- code block -->
</b:loop>

Cú pháp đầy đủ của thẻ b:loop

<b:loop index='{INDEX_NAME}'
        reverse='{BOOLEAN}'
        values='{ARRAY}'
        var='{VARIABLE_NAME}'>
</b:loop>

Ngoài {ARRAY} và {VARIABLE_NAME} là hai thuộc tính bắt buộc ra thì còn lại đều là tùy chọn có hoặc không đều được chấp nhận và chúng được giải thích như sau đây:

Thuộc tính Ý nghĩa Mức độ
values Là nơi cấp dữ liệu cho vòng lặp. Có thể được cung cấp dưới các dạng khác nhau bao gồm:
  • Biểu thức lambdas (where,first)
  • Toán tử chọn (điều kiện) ? { Biểu thức 1 } : { Biểu thức 2 }
  • Dạng mảng - Đây là cách phổ biến nhất bao gồm data:posts hoặc data:post.label,... hoặc là một mảng cụ thể tùy thuộc vào chức năng và ý muốn.
Bắt buộc
var Là biến đại diện cho dữ liệu được cấp vào từ thuộc tính values. Ví dụ biến var='post' với values='data:posts' có nghĩa là post sẽ đại diện cho data:posts và gọi post trong khối code tương đương với gọi data:posts. Chú ý: tên biến {VARIABLE_NAME} không được chứa "s" ở cuối. Ví dụ posts không hợp lệ. Bắt buộc
index Cung cấp chỉ mục số vòng lặp hiện tại. Tức là nếu vòng lặp tất cả là 3 vòng vậy index sẽ trả về kết quả hiện tại đã lặp được bao nhiêu vòng.
Yêu cầu tên {INDEX_NAME} là một chuỗi kí tự.
Không bắt buộc
reverse Đảo ngược hướng vòng lặp. Giá trị {BOOLEAN} mặc định là False. Nếu True được sử dụng. Dữ liệu sẽ bị đảo ngược lại nhưng index sẽ không thay đổi. Ví dụ có mảng dữ liệu ["a","b","c"] sẽ bị đảo thành ["c","b","a"]. Gợi ý sử dụng nó nếu các ông muốn đảo bài viết cũ lên đầu trong trang chủ và tương tự. Chú ý {BOOLEAN} có thể trực tiếp là "true","false" hoặc gián tiếp thông qua điều kiện như "data:view.isPost" và cần đặt "expr:" phía trước thuộc tính,... Không bắt buộc

Ví dụ sử dụng thẻ b:loop:

Ví dụ sau đây sẽ lặp và hiển thị tiêu đề của các bài viết:

<b:loop values='data:posts' var='post' > /* var='{VARIABLE_NAME}' */
     <data:post.title/> /* data:{VARIABLE_NAME}.title  */
</b:loop>

Ví dụ sau đây sẽ lặp và hiển thị tên các đối tượng trong mảng

<b:loop values='["a","b","c"]' var='character' >
  <data:character/> /* Hiển thị các đối tượng trong mảng */
</b:loop>

Ví dụ sau sẽ xuất các đối tượng trong mảng, xuất chỉ mục lặp hiện tại và sẽ đảo ngược các đối tượng trong mảng nếu như đang ở trang chủ.

<b:loop index='i' expr:reverse='data:view.isPost' values='["a","b","c"]' var='character' >
<!-- Hiển thị chỉ mục --> <data:i/> <!-- Hiển thị các đối tượng trong mảng --> <data:character/>
</b:loop>

Trong trường hợp các ông thích lặp với một số lần xác định