Types - Phân loại

Các đối tượng Liquid có thể trả về một trong sáu loại sau: String (chuỗi), Number (số), Boolean (hàm luận lý), Nil (vô giá trị), Array (mảng) hoặc EmptyDrop. Biến số Liquid có thể được khởi chạy bằng cách sử dụng tags assign hoặc capture.


String - Chuỗi

Chuỗi được gán bằng cách đặt toàn bộ giá trị của biến vào trong dấu ngoặc đơn hoặc ngoặc kép.

{% assign my_string = "Hello World!" %}

Number - Số

Số bao gồm số thực và số nguyên.

{% assign my_int = 25 %}
{% assign my_float = 39.756 %}

Boolean

Booleans có thể được gán là true hoặc false. No quotations are necessary when declaring a boolean.

{% assign foo = true %}
{% assign bar = false %}

Nil

Nil là một giá trị rỗng được trả lại khi thực thi một đoạn mã Liquid mà không thể cho ra kết quả. Nó không phải là một chuỗi với các kí tự nil.

Nil được xem như là kết quả sai của các khối điều kiện {% if %} và các tags Liquid khác khi kiểm tra tính chính xác của một tuyên bố.

Ví dụ dưới đây thể hiện rằng nếu như không có một mã số theo dõi fulfillment.tracking_numbers (tracking number) được nhập vào một fulfillment. Câu lệnh if sẽ không thể trả về văn bản nằm trong nó.

{% if fulfillment.tracking_numbers %}
  There is a tracking number.
{% endif %}

Bất cứ tag hay kết quả nào cho ra là nil sẽ không hiển thị bất cứ thứ gì trên màn hình.

Tracking number: {{ fulfillment.tracking_numbers }}
Tracking number:

Array - Mảng

Mảng chứa một danh sách của tất cả các loại ký tự.

Truy cập tất cả các items trong một mảng

Để truy cập các item trong một mảng, bạn có thể xâu chuỗi mỗi item trong mảng bằng cách sử dụng tag for hoặc tag tablerow.

{% for tag in product.tags %}
  {{ tag }}
{% endfor %}
sale summer spring wholesale

Truy cập một item cụ thể trong một mảng

Bạn có thể sử dụng kí tự móc vuông [ ] để truy cập một item cụ thể trong một mảng. Chỉ số của mảng bắt đầu từ 0.

if product.tags = "sale", "summer", "spring", "wholesale"
{{ site.users[0] }}
{{ site.users[1] }}
{{ site.users[3] }}
sale
summer
spring

Initializing arrays - Gán mảng

Không thể gán một mảng trong Liquid. Ví dụ, trong lập trình Java bạn có thể gán mảng như sau:

<script>
var cars = ["Saab", "Volvo", "BMW"];
</script

Trong Liquid, bạn phải sử dụng bộ lọc split để phá vỡ một chuỗi đơn thành một mảng các chuỗi con.

EmptyDrop

Một đối tượng EmptyDrop được trả về bất cứ khi nào bạn cố gắng truy cập một đối tượng không tồn tại bằng handle (ví dụ một bộ sưu tập, một trang hay một blog đã bị xóa hoặc ẩn đi). Trong ví dụ dưới đây, page_1, page_2 and page_3 đều là các đối tượng EmptyDrop.

{% assign variable = "hello" %}
{% assign page_1 = pages[variable] %}
{% assign page_2 = pages["does-not-exist"] %}
{% assign page_3 = pages.this-handle-does-not-exist %}

Các đối tượng EmptyDrop chỉ có một thuộc tính, thuộc tính empty? Điều này luôn luôn đúng

Các bộ sưu tập và các trang có tồn tại thì sẽ không có thuộc tính empty?. Thuộc tính empty? của chúng là “falsy” , có nghĩa là được gọi từ bên trong câu lệnh if và trả về kết quả false. Khi sử dụng một câu lệnh unless trong các bộ sưu tập và các trang còn tồn tại, thuộc tính empty? sẽ trả về true

Checking for emptiness - Những ứng dụng của thuộc tính empty? trong themes

Sử dụng thuộc tính empty?, bạn có thể kiểm tra xem một trang có tồn tại hay không trước khi truy cập bất cứ thuộc tính nào khác của nó.

{% unless pages == empty %}
  <!-- This will only print if the page with handle "about" is not empty -->
  <h1>{{ pages.frontpage.title }}</h1>
  <div>{{ pages.frontpage.content }}</div>
{% endunless %}

Việc biết một trang có tồn tại hay không rất quan trọng. Điều đó giúp tránh xuất ra các phần tử HTML rỗng cho trang, ví dụ:

<h1></h1>
<div></div>

Bạn cũng có thể thực hiện cách kiểm tra giống hệt như vậy với các bộ sưu tập:

{% unless collections.frontpage == empty %}
  {% for product in collections.frontpage.products %}
    {% include "product-grid-item" %}
  {% else %}
    <p>We have a "frontpage" collection, but it's empty.</p>
  {% endfor %}
{% endunless %}

results matching ""

    No results matching ""