2010-12-06 31 views
22

Tôi mới bắt đầu sử dụng công cụ tạo mẫu của jQuery. Có vẻ khá đẹp cho đến nay. Tuy nhiên, tôi tự hỏi nếu nó có thể tải mẫu từ một tập tin bên ngoài bằng cách nào đó. Hãy tưởng tượng có tải mẫu. Điều này sẽ làm hỏng mã html và cũng không thể lưu vào bộ nhớ cache và phải được tải xuống theo mọi yêu cầu.tải jQuery-Mẫu từ tệp bên ngoài?

Tôi đã hy vọng có một cách để xác định tất cả chúng trong một tệp bên ngoài và sau đó tải chúng và lưu các mẫu đã biên dịch vào localStorage.

Có ai có ý tưởng về cách tải chúng từ tệp bên ngoài không?

Trả lời

14

bạn có thể tải mẫu này bằng ajax.

<script> 
    var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998", Director: "François Girard" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999", Director: "Stanley Kubrick" }, 
    { Name: "The Inheritance", ReleaseYear: "1976", Director: "Mauro Bolognini" } 
    ]; 

    $.get("templates/movieTemplate.html", function(data, textStatus, XMLHttpRequest){ 
    var markup = data; //"<tr><td colspan='2'>${Name}</td><td>Released: ${ReleaseYear}</td><td>Director: ${Director}</td></tr>" 

    /* Compile markup string as a named template */ 
    $.template("movieTemplate", markup); 

    /* Render the named template */ 
    $.tmpl("movieTemplate", movies).appendTo("#movieList"); 
    }); 
</script> 

Bây giờ bạn có thể thêm logic cục bộ hoặc một mảng cho các mẫu đã tải nếu bạn chỉ muốn tải bất kỳ mẫu nào một lần.

+0

1 cho bao gồm cả ví dụ về việc sử dụng .template() để biên dịch và $ .tmpl() để render. Điều này cho phép lặp lại các cuộc gọi đến $ .tmpl() sau này mà không cần tìm nạp hoặc biên dịch. – justis

+0

Nó cung cấp: TypeError: $ .template không phải là một hàm – zygimantus

0

Gần đây tôi đã viết một thư viện javascript để hỗ trợ với điều này:

https://www.github.com/stevenmhunt/tmpl.loader

Bạn có thể thêm jsRender hay bất kỳ loại khác của mẫu file bằng cách sử dụng thẻ <link> và họ tự động đăng ký.

+0

Liên kết bị hỏng. :( – Luke

+0

Xin lỗi về điều đó, tôi đã đổi tên github của mình vài năm trước. –

1

tôi đã viết lib litle như jQuery plugin cho ajax render html trên xuất hiện khối với indexDB bộ nhớ đệm trong trình duyệt jQuery HTML Template Loader

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