2015-04-01 66 views
0

模板T1有這個JS:在流星如何將數據從內部函數複製到其他模板?

if (Meteor.isClient) { 

    Template.t1.onRendered(function() { 
    var mytasks = { 
     tasks: [ 
     { text: "This is task 1" }, 
     { text: "This is task 2" }, 
     { text: "This is task 3" } ] } }) ; } 

確實流星向全球提供的可變機構,讓我的 當地mytasks變量拷貝到一個全局變量或以某種方式與其他 模板分享嗎?

回答

1

如果你聲明一個沒有var的變量,它對客戶端,服務器或兩者都是全局的(取決於聲明的地方)。例如:

客戶端/ lib目錄/ globals.js

myTasks = [{text: "This is task 1"}, {...}]; 

客戶端/模板/ t1.js

Template.t1.helpers({ 
    tasks: myTasks 
}); 

這裏,myTasks是全球性的客戶端。請注意,我在lib目錄內的文件中聲明瞭該變量,以便將其加載到其他客戶端目錄中的文件之前。


如果myTasks總是通過助手進行訪問,另一種可能性是定義一個global helper這樣的:

Template.registerHelper('myTasks', function() { 
    return [{text: "This is task 1"}, {...}]; 
}); 

,然後在模板:

{{#each myTasks}} 
    <p>{{text}}</p> 
{{/each}} 
相關問題