2015-03-31 15 views
11

Cách tạo một hàm cho tất cả các mẫu trong thiên thạch?cách tạo hàm toàn cục trong mẫu sao băng

index.js

// Some function 
function somefunction(){ 
    return true; 
} 

Test1.js

Template.Test1.events({ 
    'click button' : function (event, template){ 
    //call somefunction 
    } 
}); 

Test2.js

Template.Test2.events({ 
    'click button' : function (event, template){ 
    //call some function 
    } 
}); 
+0

Bản sao có thể có của [Chức năng toàn cầu cho trình trợ giúp mẫu Meteor] (http://stackoverflow.com/questions/20681761/global-function-for-meteor-template-helper) –

Trả lời

20

Bạn cần phải thực hiện chức năng của mình một định danh toàn cầu để có thể gọi nó qua nhiều tệp:

index.js

// Some function 
somefunction = function(){ 
    return true; 
}; 

Trong Meteor, biến là tập tin scoped theo mặc định, nếu bạn muốn xuất định để không gian tên toàn cầu để tái sử dụng chúng trên dự án của bạn, bạn cần phải sử dụng cú pháp sau:

myVar = "myValue"; 

trong JS, chức năng là chữ có thể được lưu trữ trong các biến thông thường, vì thế mà cú pháp sau:

myFunc = function(){...}; 
0

Nếu bạn không muốn xả rác toàn cầu tên-không gian bạn có thể tạo riêng fi le:

nhập khẩu/chức năng/somefunction.js

export function somefunction(a,b) { 
    return a+b; 
} 

và trong logic của mẫu nhập khẩu và sử dụng theo cách này:

client/calculations.js

import { somefunction } from '../imports/functions/somefunction.js' 

Template.calculations.events({ 
    'click button' : function (event, template){ 
     somefunction(); 
    } 
}); 

Có thể nó không chính xác, bạn muốn, bởi vì trong trường hợp này bạn nên thêm nhập vào trong bất kỳ mẫu nào, nhưng tránh các biến toàn cục là thực hành khá tốt, và có lẽ bạn không muốn sử dụng cùng chức năng trong bất kỳ mẫu nào .

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