Jeśli mam szablon nadrzędny Container
z szablonu dziecięcej Content
avec tylko przycisk:Meteor, wywołanie funkcji w szablonie dziecko od nadrzędnego szablonu
<head>
<title>test</title>
</head>
<body>
{{> Container}}
</body>
<template name="Container">
{{# Content callback = callBack }}
<button>ok</button>
{{/Content}}
</template>
<template name="Content">
{{> UI.contentBlock}}
</template>
Jeśli można przekazać funkcję do callback
. W ten sposób:
Template.Container.helpers({
callBack: function() {
return function() {
console.log('this is my callback');
}
}
});
Tak więc w moim szablonie treści mogę wywoływać funkcję z mojego szablonu nadrzędnego. Na przykład:
Template.Content.events({
'click button': function (e, tmpl) {
tmpl.data.callback();
}
});
Ale czasami muszę zrobić to w inny sposób. Rodzic wywołujący funkcję w swoim dziecku. Jaki jest twój sposób robienia tego?
EDIT:
Uratowałem go w meteorpad aby zobaczyć go w akcji i ułatwiają widelcu: http://meteorpad.com/pad/48NvCFExxW5roB34N/test-pass-callback-to-parent
Użyłem emiter zdarzeń (https://github.com/Olical/EventEmitter) do komunikacji między szablonami wcześniej, przekazujesz emitera zdarzeń do szablonu podrzędnego, podobnie jak powyżej, działa całkiem dobrze. Szablon podrzędny może również emitować zdarzenia, które mają być odbierane przez szablon nadrzędny. – nephets