2014-11-22 68 views
3

我認爲這可能是非常有用的東西。流星和鐵路路由器的產量是否有事件掛鉤? Template.yield.rendered?

如果我們有:

<template name="layout"> 

    {{> header }} 

    {{> yield }} 

    {{> footer }} 

</template> 

這將是不錯的東西像

Template.yield.rendered = function() { 
    // Do something after the yield has finished rendering 
} 

除了

Template.header.rendered = function() { 
    // Do something after the header has finished rendering 
} 

Template.footer.rendered = function() { 
    // Do something after the footer has finished rendering 
} 
+0

你知道呈現的回調在被放棄的模板上觸發,對吧?但是你想要定義一個在所有正在生成的模板上被渲染的回調函數嗎? – 2014-11-22 09:03:02

+0

是的。我想在可能產生的'any'模板上定義呈現的回調。假設我有共同的代碼,應該在yield之後運行。我不想在每個模板的每個單獨的'.rendered'回調中反覆編寫或引用相同的代碼。 – fuzzybabybunny 2014-11-22 09:05:13

回答

1

如果你真的需要有'掛鉤任何'模板,您可以定義一個嵌套良品模板:

<template name="layout"> 

    {{> header }} 

    {{> nested_yield }} 

    {{> footer }} 

</template> 

<template name="nested_yield"> 
{{> yield }} 
</template> 

然後

Template.nested_yield.onRendered(function() { 
    //your render code here 
}); 

然而,你可能會遇到的問題與當模板結束了相同的模板進行更新IronRouter緩存模板,也不會真正「重新渲染」的模板。

+0

謝謝。我會給這個鏡頭。 – fuzzybabybunny 2015-08-13 00:38:42