2011-12-22 30 views
21

Tôi đang sử dụng Node.js với khung công tác web Express (và công cụ mẫu EJS). Khi tôi phải in một biến tôi làm một cái gì đó như:Làm thế nào để in một biến trực tiếp bằng cách sử dụng công cụ mẫu EJS?

<% if (value) { %> 

<%= value %> 

<% } %> 

Tôi có thể làm điều tương tự mà không cần mở khung khác không? Giống như:

<% if (value) { PRINT VALUE } %> 

Điều này có khả thi không? Làm thế nào để in biến?

+0

Tại sao bạn không sử dụng '<%= value %> '? –

+0

vì tôi, ví dụ, muốn làm điều gì đó như <% if (giá trị) {PRINT "foobar"}%>, nếu điều kiện này được đáp ứng, hãy chọn hộp kiểm hoặc tương tự. – glasspill

Trả lời

16

Tôi ngạc nhiên khi thấy rằng apparrently bạn không thể làm điều đó, như trong PHP:

<?php if ($value) : ?> 
    <?php echo $value; ?> 
<?php endif; ?> 

Tuy nhiên một giải pháp tốt hơn một chút có thể làm

<%= (value) ? value : '' %> 

tôi nói giả định này đôi khi điều kiện có thể phức tạp hơn, tức là

<%= (str.length > 100) ? truncate(str) : str; %> 

Đẹp hơn nhiều so với

<% if (str.length > 100) { %> 
<%= truncate(str) %> 
<% } %> 

ngay cả khi nó là một ví dụ hơi giả tạo.

Tôi muốn được hiển thị lệnh trực tiếp để thực hiện điều đó, theo câu hỏi ban đầu của bạn.

+9

Hoặc thậm chí ngắn hơn <% = giá trị || ''%> – Zugwalt

Các vấn đề liên quan