2012-03-15 38 views
9

ho Tôi có thể thoát khỏi niềng răng xoăn bên trong một tấm ngọc bích? (Tôi sử dụng ngọc bích bên trong node.js)Làm cách nào để thoát khỏi các dấu ngoặc nhọn bên trong các mẫu ngọc bích?

Tôi muốn tạo các mẫu jQuery cho ứng dụng khách. Phần tôi muốn thoát khỏi trông như thế này:

div(class='clear') 
script(id='BoardListTemplate', type='text/x-jQuery-tmpl') 
    <p>${Title}</p> 
    <ul id="${Id}" class="IterationBoardList"> 
    <li class="AddNewItem">Add new Item</li> 
    {{tmpl(Items) "#BoardListItemTemplate"}} 
    </ul> 
script(id='BoardListItemTemplate', type='text/x-jQuery-tmpl') 
    <li class="Item" id="${{$data.Id}}"> 
    ${$data.Description}<br /> 
    Assigned to: ${$data.AssignedTo}<br/> 
    StoryPoints: ${$data.StoryPoints}</li> 
script(src='/javascripts/Scrummr.Engine.js', id='BoardListItemTemplate', type='text/javascript') 

cảm ơn nhiều

+1

bạn đã thử sử dụng các thực thể html '{' và '}'? – arvidkahl

+1

có, nó không hoạt động –

Trả lời

11

Bạn phải sử dụng các đường ống (|) đăng nhập trước của mỗi dòng bên trong khối kịch bản.

Xem https://gist.github.com/2047079 để biết ví dụ.

+0

các công trình đường ống tuyệt vời. cảm ơn nhiều :-) –

+0

Tôi muốn lưu ý rằng trong khi câu trả lời này là hữu ích và đúng, nó không thực sự là một câu trả lời cho "làm thế nào để thoát khỏi niềng răng xoăn" một phần của câu hỏi. – metamatt

3

Có hai điều khác nhau đang diễn ra ở đây.

Jade sử dụng khoảng trắng để ngụ ý cấu trúc tài liệu; vấn đề thụt đầu dòng và vấn đề ngắt dòng, và Jade hy vọng mỗi dòng bắt đầu với một thứ gì đó mà nó sẽ tạo ra các thẻ HTML từ đó.

Nếu bạn muốn ăn nó một cái gì đó mà bạn không muốn nó để chuyển đổi - ví dụ, HTML thô hoặc kịch bản hay một mẫu liệu bạn muốn hiển thị trên máy khách - bạn có thể

1) bắt đầu mỗi dòng với ký tự ống (|), theo sau là văn bản thô. Ví dụ từ Jade docs:

p 
    | foo bar baz 
    | rawr rawr 
    | super cool 
    | go jade go 

2) bắt đầu một khối văn bản thô bằng cách kết thúc thẻ vùng chứa trước đó trong một khoảng thời gian. Ví dụ, một lần nữa từ Jade tài liệu:

p. 
    foo asdf 
    asdf 
    asdfasdfaf 
    asdf 
    asd. 

riêng, Jade thực hiện chuỗi suy, điều trị một số ký tự hoặc ký tự đặc biệt, mà bạn có thể cần phải thoát ra trong bối cảnh mà bạn không muốn nó suy. Đây là phần câu hỏi này được hỏi về (thoát dấu ngoặc nhọn). Jade không thực sự đối xử với {đặc biệt, nhưng nó đặc biệt đối xử với # {. Nếu bạn cần # {, bạn có thể thoát khỏi nó như \ # {.

+0

\ # {{search.players}} là những gì tôi đang tìm kiếm ... Cảm ơn bạn @metamatt –

0

Jade cung cấp toán tử dấu chấm (.) Ở cuối dòng cho phép bạn thoát khỏi mọi thứ bên trong khối thụt lề con.

script(id='BoardListTemplate', type='text/x-jQuery-tmpl'). 
    // Everything inside here is completely escaped. 
    <p>${Title}</p> 
    <ul id="${Id}" class="IterationBoardList"> 
    <li class="AddNewItem">Add new Item</li> 
    {{tmpl(Items) "#BoardListItemTemplate"}} 
    </ul> 

- // outside here it's all JADE. 
h1 How about a JADE heading 

script(id='BoardListItemTemplate', type='text/x-jQuery-tmpl'). 
    // back to escaped script in here. 
    <li class="Item" id="${{$data.Id}}"> 
    ${$data.Description}<br /> 
    Assigned to: ${$data.AssignedTo}<br/> 
    StoryPoints: ${$data.StoryPoints}</li> 

script(src='/javascripts/Scrummr.Engine.js', id='BoardListItemTemplate', type='text/javascript'). 

DOT (.) Ở cuối là phần quan trọng.

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