2013-06-29 24 views
0

我已經通過使用流星構建Web應用程序的教程,我仍然對你的標準JS函數調用應該坐在哪裏感到困惑,以便它們只在適當的地方調用一次。標準JS函數在Meteor應用程序中的位置在哪裏?

例如我有以下兩個模板

<template name="list"> 
    <ul> 
     {{> listItem}} 
    </ul> 
</template 

然後......

<template name="listItem"> 
    <li>Item</li> 
</template> 

如果我當時想在每個L1標籤在哪裏我把JS執行的DOM操作和什麼流星的事情(抱歉,不確定正確的詞)是否需要?

它應該在list.js還是在listItem.js中?我只需要它運行一次,所以我會想到list.js,但從技術上講JS是應用於listItem模板。

它應該在Meteor.template.rendered或Meteor.template.created裏面嗎?有沒有其他的東西應該使用,或者它不應該放在任何東西里面?

對不起,如果這有點令人困惑,我基本上想知道這個代碼將坐在哪個文件以及如何使用它,以便它只運行onces。

任何幫助非常感謝,謝謝!

回答

1

如果您想要在呈現每個<li>後對其執行Javascript函數,我認爲將代碼放在listItem.js中是最符合邏輯的。

爲了讓您的代碼執行「一次」,根據Meteor docs將其置於Template.listItem.rendered = function() { ... };中。

我有一次在嚇人的報價,因爲它不僅是一次,它會在每次模板重新呈現時觸發,這可能是也可能不是你想要的。正如你注意到的那樣,還有Template.listItem.created = ..。沒有更多的信息(你的<ul>會被綁定到一個被動數據源,還是靜態的,等等?),我不能給你更好的建議。

相關問題