2011-07-13 27 views
6

Có ai có giải pháp thanh lịch để chuyển các giá trị máy chủ tới javascript (không phải là nội tuyến) trong playframework không? giống như $ {x} hoặc & { 'x'} bên trong htmlPlayframework: Cách thanh lịch để chuyển các giá trị tới javascript

Hiện nay tôi có thể nghĩ đến

<script type="text/javascript"> 
    var x= ${x}; 
    </script> 
    <script src="/public/javascripts/jsThatUsesX.js" type="text/javascript" ></script> 

Tôi đang nghĩ đến có một giải pháp tốt hơn từ chơi

Trả lời

2

Nó không đẹp, nhưng đó là cách tôi luôn luôn kết thúc làm việc đó.

Nếu các giá trị bạn chuyển đến JavaScript mô tả điều gì đó trong DOM, bạn có thể xem xét sử dụng thuộc tính dữ liệu HTML 5 để đặt thông tin đó vào HTML. Sau đó, bạn có thể truy xuất nó với getAttribute. ví dụ. Nếu trang của bạn là bài đăng trên blog và bạn cần lưu trữ ID bài đăng, bạn có thể sử dụng

<div class="post" data-post-id="77"> 
    ... 
</div> 

Bằng cách đó dữ liệu được tách ra khỏi logic và bạn không cần phải inline bất kỳ JavaScript nào. Bạn cũng có thể sử dụng một trường biểu mẫu ẩn.

2

Có gì sai với điều đó ? Tôi thấy mình làm những việc như

<script> 
    var trades = [${_trades.collect {models.Trade t -> t.price}.join(", ")}]; 
    // ... 
</script> 

Tôi thích nó theo cách hấp dẫn;)

+0

Andre, Không có gì sai với điều đó :-). Tôi yêu Groovy. Tôi muốn khả năng truyền trực tiếp các đối tượng tới javascripts (và tránh nội tuyến) – roshan

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