Tôi hiểu cách chuyển nguồn dữ liệu trong Handlebars nhưng tôi đã tình cờ gặp một tình huống mà tôi không thể làm việc.Handlebars.js - Nhận bối cảnh gốc trong vòng lặp, câu lệnh if và đối tượng con
Sử dụng "../" bạn có thể tiếp cận phạm vi mẫu gốc nhưng khi lặp qua con của đối tượng, nó có vẻ trả về đối tượng chứ không phải con.
{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
Đoạn mã trên hoạt động tốt nếu bạn lặp thông qua một đối tượng được gọi là 'nội dung' nhưng ngay sau khi bạn lặp qua nó là đứa trẻ, 'content.items' nó không còn trả về phạm vi đúng.
Đây là một câu đố thể hiện sự cố. http://jsfiddle.net/sidonaldson/MDdn2/
Có ai có thể làm sáng tỏ điều gì sai không?
Tôi không hoàn toàn chắc chắn những gì đang xảy ra với mã hiện tại của bạn, nhưng một giải pháp dễ dàng là sử dụng trình trợ giúp '{{with}}' để lưu phạm vi bên ngoài. Nó có lẽ sẽ dễ đọc hơn. – GJK
GJK - nếu bạn muốn demo rằng trong một câu trả lời tôi sẽ đánh dấu nó như vậy. Kinda nghe như những gì tôi cần! – sidonaldson
'# if' tạo một tổ mới để điều duy nhất tôi có thể nghĩ đến là nó bỏ qua tổ mẹ để chỉ ở trên nó. Im không chắc chắn nếu nó trả lời câu hỏi của bạn nhưng, cho hậu thế, thêm tổ #if và tổ nội dung vào đường dẫn dường như hoạt động ... '
{{prop}} + {{../../content/variable }}
'http://jsfiddle.net/MDdn2/3/ – Shanimal