2012-01-26 32 views
7

Tôi muốn sử dụng cú pháp dao cạo bên trong các tệp Javascript của mình. Điều này có thể không bao gồm nội tuyến javascript vào trang không?Có thể sử dụng cú pháp dao cạo trong các tệp Javascript không?

+0

Tại sao bạn cần sử dụng Dao cạo trong tệp javascript? Cụ thể hơn bạn cần đạt được điều gì? Tôi đặt cược có những cách tốt hơn để đạt được nó. –

+0

bản sao có thể có của [asp.net-mvc: dao cạo '@' biểu tượng trong tệp js] (http://stackoverflow.com/questions/7902213/asp-net-mvc-razor-symbol-in-js-file) – gdoron

+0

@ DarinDimitrov: Tôi chỉ thực sự cần thiết để sử dụng Url.Action() trong yêu cầu ajax của tôi. – Tjaart

Trả lời

3

Dao cạo chỉ chạy trên trang chứ không phải bất kỳ tệp javascript nào được bao gồm.

Bạn có thể viết trình phân tích cú pháp tùy chỉnh sẽ chạy công cụ xem với bất kỳ tệp javascript nào trước khi phân phối chúng và tôi tưởng tượng bất kỳ nỗ lực nào để làm như vậy sẽ là một dự án nguồn mở rất hữu ích. Tuy nhiên, giải pháp đơn giản nhất mà bạn nghĩ đến (nếu các biến này không được liên kết theo ngữ nghĩa với bất kỳ phần tử DOM nào) chỉ đơn giản là khai báo và khởi tạo biến của bạn trong trang (hoặc trong một phần được bao gồm) và javascript của bạn (trong phần này), bạn có thể làm như vậy. .js tệp) dựa trên các biến này đang được xác định. Tuy nhiên, nếu các biến mà bạn yêu cầu được liên kết hợp lý với các phần tử DOM, tôi thích sử dụng các thuộc tính data-* để xác định các thuộc tính này, theo cách này, javascript của bạn có thể được tiêu thụ bởi html, chứ không phải theo cách khác. Ví dụ, nếu bạn có một khu vực nội dung đó phải được tự động cập nhật bằng javascript (sử dụng jQuery làm ví dụ ở đây):

HTML:

<div data-auto-refresh="pathToContent" data-auto-refresh-milliseconds="1000"></div> 

Javascript:

$(function() { 
    $('[data-auto-refresh]').each(function() { 
    var self = $(this); 
    var url = self.data('auto-refresh'); 
    var interval = self.data('auto-refresh-milliseconds'); 
    // Code to handle refresh here ... 
    }); 
}); 
+0

+1 ... và cách khác bạn có thể chuyển các giá trị bắt buộc cho tệp JS của bạn trong chuỗi truy vấn. –

2

Bạn có thể thiết lập giá trị trong lĩnh vực ẩn trong file cshtml yout, và sau đó trong các tập tin javascript của bạn, bạn có thể truy cập vào các trường ẩn.

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