2012-11-30 33 views
125

Tôi có một mẫu handlebars.js, chỉ cần như thế này:Tiếp cận một biến nằm ngoài phạm vi của một Handlebars.js mỗi vòng lặp

{{externalValue}} 

<select name="test"> 
    {{#each myCollection}} 
     <option value="{{id}}">{{title}} {{externalValue}}</option> 
    {{/each}} 
</select> 

Và đây là sản phẩm được tạo ra:

myExternalValue 

<select name="test"> 
     <option value="1">First element </option> 
     <option value="2">Second element </option> 
     <option value="3">Third element </option> 
</select> 

Như dự kiến, tôi có thể truy cập các trường idtitle của mọi thành phần của myCollection để tạo lựa chọn của tôi. Và bên ngoài lựa chọn, biến số externalValue của tôi được in chính xác ("myExternalValue").

Thật không may, trong văn bản của tùy chọn, externalValue giá trị không bao giờ được in ra.

Câu hỏi của tôi là: làm thế nào tôi có thể truy cập biến ngoài phạm vi của handlebars.js mỗi từ trong vòng lặp?

Như mọi khi, cảm ơn trước.

Trả lời

312

Hãy thử

<option value="{{id}}">{{title}} {{../externalValue}}</option> 

Phân khúc đường ../ tham chiếu phụ huynh mẫu phạm vi đó phải là những gì bạn muốn.

+5

Chúc mừng người đàn ông, điều này hoạt động hoàn hảo. :) – lucke84

+5

Nếu người đọc trong tương lai vẫn gặp sự cố như tôi, hãy xem nhận xét cho [câu trả lời này] (http://stackoverflow.com/a/12297980/149998) tại đây. Phải mất một lúc tôi mới thấy câu trả lời này để thấy câu trả lời đó. Bạn có thể cần sử dụng '../' nhiều lần tùy thuộc vào số lượng phạm vi từ giá trị của bạn. – bcmcfc

+5

Tôi có điên hay là loại thông tin giá trị này không có ở đâu được tìm thấy trên tài liệu tay lái ??? – Jesse

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