2011-05-18 40 views

Trả lời

-1

Bạn đang cố gắng để gọi một chức năng như một phần của phân tích cú pháp của bạn của mã ria mép? hoặc tạo đầu ra, điều đó sẽ gọi hàm JavaScript? ví dụ. Điều này sẽ xuất HTML sẽ gọi chức năng (tôi tin).

{{#items}} 
    <script>{{funcName}}("{{url}}");</script> 
{{/items}} 
+1

Trong trường hợp của tôi, tôi có nghĩa này:

{{something}}

, như một cái gì đó là: var something = function() {return "a"}; khi tôi vẽ mẫu biến số gọi của nó là một hàm ... vì vậy tôi có "a" thay cho {{something}} ... nhưng bây giờ tôi cần đối số và đó là những gì im tìm kiếm – sinisa

+14

Wow, điều này là xấu xí. – ViniciusPires

+0

Nếu bạn định chèn các thẻ '

48

Kiểm tra phần trên Lambdas tại http://mustache.github.com/mustache.5.html

Moustache mẫu khối:

{{#someFunction}}someValue{{/someFunction}} 

Function block:

someFunction : function() { 
    return function(val, render) { 
    return "I passed in this value: " + render(val); 
    }; 
} 

Output:

I passed in this value: someValue 
+0

Chỉ cần cảnh báo javascript, sau khối chức năng trả về, cần có dấu chấm phẩy (;). Gói SublimeLinter của Sublime Text đã chọn gói này. –

+3

Điều này sẽ chỉ làm việc cho tôi nếu tôi thay đổi chữ ký chức năng thành 'hàm trả về (val, render) {' – Evildonald

+1

làm rõ http://www.levihackwith.com/mustache-js-render-is-not-defined/ ở trên – AberZombie

2

Nếu bạn muốn nội dung tập lệnh được thực thi sau khi đánh dấu được chèn vào nito, bạn nên sử dụng một số thư viện sẽ thực hiện giống như jquery.

Hãy thử điều này ở đây:

http://jsfiddle.net/anilkamath87/GBP8N/

Ngoài ra nếu bạn muốn gọi một số phương pháp khác trong tập tin kịch bản của bạn. Tất cả những gì bạn cần làm là gọi hàm này tùy thuộc vào phạm vi của hàm đó và nếu nó đã được tải sẵn vào trong dom.

Hy vọng điều này sẽ hữu ích.

PS: lưu ý thoát của thẻ script trong mẫu đánh dấu

1

đối với tôi đây hoạt động:

thêm chung chức năng FUNC để json (dữ liệu):

data.FUNC = function(){ 
       return function(val, render){ 
        var values = JSON.parse(render(val)); 
        return window[values.FUNCNAME].apply(this, values.FUNCARGS); 
       }; 
      }; 

thường xuyên javascript trên trang:

function foo(arg1, arg2){ 
    return "Arg1 is " + arg1 + " and Arg2 is " + arg2; 
}; 

Khối mẫu Mustache gọi javascript thông thường- hoạt động với thẻ-giá trị như các đối số:

{{#FUNC}}{"FUNCNAME":"foo", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}} 

bạn cũng có thể gọi một hàm được định nghĩa trong json:

{{#calljsfunction}} {{#FUNC}}{"FUNCNAME":"{{calljsfunction}}", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}{{/calljsfunction}}

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