Trường số

Trường số lưu trữ một số dưới dạng value và một chuỗi dưới dạng text. value luôn là một số hợp lệ theo định nghĩa của các ràng buộc được đưa ra cho trường tại thời điểm tạo; văn bản của trường có thể là bất kỳ chuỗi nào được nhập vào trình chỉnh sửa của trường.

Trường số

Một khối có nhãn "number:" và một trường số được đặt thành 100.

Trường số có trình chỉnh sửa đang mở

Cùng một khối với trường đang được chỉnh sửa.

Trường số trên khối bị thu gọn

Khối đó sau khi được thu gọn. Nút này có nhãn "number: 100" và cạnh phải gồ ghề để cho biết nút đang bị thu gọn.

dựa trên xu hướng

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

Hàm dựng số nhận các giá trị sau:

  • một value không bắt buộc
  • một min không bắt buộc
  • một max không bắt buộc
  • một precision không bắt buộc
  • một validator không bắt buộc

value phải truyền đến một số. Nếu không, hệ thống sẽ dùng giá trị 0.

Chuyển đổi tuần tự

JSON

JSON cho một trường số sẽ có dạng như sau:

{
  "fields": {
    "FIELDNAME": 0
  }
}

Trong đó FIELDNAME là một chuỗi tham chiếu đến một trường số và giá trị là giá trị cần áp dụng cho trường. Giá trị này tuân theo các quy tắc tương tự như giá trị của hàm khởi tạo.

XML

XML cho một trường số sẽ có dạng như sau:

<field name="FIELDNAME">0</field>

Thuộc tính name của nút field chứa một chuỗi tham chiếu đến một trường số và text bên trong của nút là value để áp dụng cho trường. Giá trị văn bản bên trong tuân theo các quy tắc tương tự như giá trị của hàm khởi tạo.

Giới hạn

Bạn có thể đặt các ràng buộc trong định nghĩa trường hoặc bằng cách sử dụng hàm setConstraints.

Giá trị nhỏ nhất

Giá trị min đặt giá trị nhỏ nhất/âm nhất mà trường được phép chứa.

Giá trị tối đa

Giá trị max đặt giá trị lớn nhất/dương nhất mà trường được phép chứa.

Làm tròn

precision làm tròn giá trị đến bội số gần nhất của độ chính xác. Bạn có thể dùng thuộc tính này để chỉ chấp nhận các bội số của 0,01, 10, 42, v .v.

Các ràng buộc thường gặp

Số dương

Để buộc trường của bạn chỉ chấp nhận số dương, hãy đặt giá trị min thành 1.

Số nguyên

Để buộc trường của bạn chỉ chấp nhận số nguyên, hãy đặt precision thành 1.

Tạo trình xác thực số

Giá trị của trường số là một số, vì vậy, mọi trình xác thực phải chấp nhận một number và trả về một number, null hoặc undefined.

Dưới đây là ví dụ về một trình xác thực thay đổi giá trị thành 0 hoặc 1 tuỳ thuộc vào giá trị là số lẻ hay số chẵn.

function(newValue) {
  return newValue % 2;
}

Ảnh GIF động cho thấy trình xác thực đang hoạt động. Khi người dùng nhập 10 và nhấp vào nơi khác, trường này sẽ được đặt thành 0. Khi người dùng nhập 11 và nhấp vào nơi khác, trường này sẽ được đặt thành 1.