2011-10-20 25 views
5

Tôi đang cố gắng để có được ngọc để tự động tạo url cho tôi:mẫu ngọc bích node.js - cú pháp tùy chỉnh và thay thế?

vì vậy nếu tôi có một liên kết sử dụng như thế này:

.userLink 
    a(href="/#{user}") #{user} 

Tôi muốn để có thể thay thế nó bằng một cái gì đó tương tự (giả cú pháp):

.userLink 
    userLink(#{user}) 

Dù sao để làm điều này?

Cảm ơn

Chỉnh sửa: Được rồi tôi đã nhận nó:

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 

Có vẻ như rằng sẽ làm việc.

+0

Tuyệt vời! Vui vì bạn đã nhận được những trục trặc làm việc ra. –

Trả lời

3

CẬP NHẬT:

Đây là phiên bản sử dụng hỗn hợp ngọc bích. Đáng buồn thay, tôi dường như không thể tìm thấy biến "người dùng" trong danh sách thuộc tính được gắn dấu ngoặc đơn của thẻ "a".

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 
mixin userLink("Alice") 
mixin userLink("Cooper") 

Tạo HTML này

<a href="/undefined"></a> Bob 
<a href="/undefined"></a> Alice 
<a href="/undefined"></a> Cooper 

Chỉ cần đặt một hàm helper vào người dân địa phương của bạn phản đối và gọi nó là từ mẫu

locals = {userLink: function(userName) { return "<a href=....."}} 

jade.render('myview', {locals: locals}) 

Sau đó, trong mẫu ngọc bích của bạn làm:

= userLink(user) 

Bạn cũng có thể muốn xem xét có thể đăng ký dynamicHelper function.

+0

Tôi đang sử dụng jadevu và ngọc bích ở phía khách hàng, vì vậy đó không thực sự là một lựa chọn tốt cho tôi. Tôi cũng muốn giữ những thứ tô điểm trong ngọc bích, thay vì có nó trong JS nữa. – Harry

+0

Uh, nếu "công cụ tạo khuôn mẫu" liên quan đến chức năng, nó sẽ không xảy ra. Mã chuẩn bị dữ liệu, ngọc bích phun nó vào HTML. –

+0

Đó không phải là điểm của mixin? Làm thế nào để bạn sử dụng mixins – Harry

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