Nếu bạn say mê @if nhưng không thích vấn đề bảo mật xung quanh việc sử dụng eval, bạn có thể sử dụng trình trợ giúp @if thay thế của tôi. Nó cung cấp một thuộc tính test = "expr" để xác định điều kiện if của bạn. eval không được sử dụng để đánh giá biểu thức.
Các biến trong biểu thức được giới hạn đối với tên bụi và đường dẫn được sử dụng để truy cập các giá trị từ ngữ cảnh. Hằng số là số nguyên, dạng float, hex và chuỗi JavaScript ("xx" hoặc "xx"). Các toán tử có thể là một "biến", một hằng số, hoặc một biểu thức nhị phân hoặc đơn nhất sinh ra một giá trị. Các toán tử quan hệ là <,>, < =,> =, ==,! =. Các toán tử Boolean! (unary), || và & & .. Ưu tiên toán tử giống như JavaScript và dấu ngoặc đơn được phép cho rõ ràng hoặc khi ưu tiên không phải là thứ bạn muốn.
Dưới đây là một ví dụ:
{@if test="state == 'CA' || state == 'NY'"}
true stuff goes here
{:else}
false stuff goes here
{/if}
Lưu ý rằng nó vẫn có code để cho phép cond = "expr" thuộc tính có sử dụng eval(). Điều này cung cấp một đường dẫn di trú cho mã hiện có.
Bạn có thể cài đặt nó làm mô-đun npm (https://npmjs.org/package/dustmotes-if).
* điều kiện chỉ để làm cho nó dễ dàng hơn để fint nó – eMarine