0
我是Meteor新手,我找不到足夠的答案,但是如何以編程方式引用模板的事件處理程序。流星動態模板事件
例如,我想添加,更新或觸發模板中定義的事件,但實際上並未作爲示例(按下或單擊按鈕)。
在模板對象中,我可以看到下面的事件對象,我可以訪問它,但這是正確的方式嗎?
Template.myTemplate._tmpl_data.events []
謝謝!
我是Meteor新手,我找不到足夠的答案,但是如何以編程方式引用模板的事件處理程序。流星動態模板事件
例如,我想添加,更新或觸發模板中定義的事件,但實際上並未作爲示例(按下或單擊按鈕)。
在模板對象中,我可以看到下面的事件對象,我可以訪問它,但這是正確的方式嗎?
Template.myTemplate._tmpl_data.events []
謝謝!
您可以定義事件地圖外的處理程序,並把它作爲一個功能:
someHandler = function(this, evt,tpl) {
// do something with this, evt, and tpl
}
Template.myTemplate.events({
'click .myButton': function(event,template) {
var self = this;
return someHandler(self, event,template);
}
});
// Call someHandler whereever you want passing in whichever args you want
這不是一個完整的例子,但應該可以讓你去上一些可行的方向。如果有效,請編輯此答案以反映更完整的示例。
我真的不明白這個解決方案,如果我調用someHandler本身的上下文將會丟失。最簡單的方法是使用jquery,例如觸發點擊事件。我希望能找到一些動態訪問和/或創建模板事件,我可以動態創建和訪問新的模板...請參考以下鏈接:[Dynamic Templates](http://stackoverflow.com/questions/13550775/how-to-compile-new-templates-at-runtime-in-meteor?rq = 1)http://stackoverflow.com/questions/13550775/how-to-compile-new-templates-at -runtime-in-meteor?rq = 1 – ryeo
您可以在沒有上下文的情況下使用事件函數,因此您可以在函數內控制它,並觸發上下文無關版本。事實上,您可以使用jQuery作爲模板中的選擇器。但我認爲你正在嘗試做一些我不清楚的事情。你是指觸發事件本身還是事件處理程序?我的例子是一個處理程序。如果你只是想觸發一個事件(比如點擊),你可以使用普通的jquery,並且也可以用你的事件處理器定義來處理。 –
好吧,我明白了。我試圖將PubNub集成到我的Meteor應用程序中,並基於某些pubnub消息觸發模板事件.....感謝這給了我一些想法! – ryeo