![](/img/trans.png)
[英]Meteor using variable from template.rendered into template.event
[英]Calling helper functions from within template.rendered in Meteor.js, error in 1.0, fine in 0.9.3
為了避免重復代碼,我發現擁有可以從foo.rendered函數(例如)中調用的輔助函數很有用。 為什么在Meteor的0.9.3中可能出現這種情況,但在1.0中會引發錯誤?
Template.foo.helpers({
'fooFn' : function(){
return "something"
}
});
Template.foo.rendered = function(){
var something = Template.foo.fooFn();
}
我應該更改foo.rendered中的語法(我稱錯嗎?)還是應該完全使用其他方法(在helpers({})和render()外部設置函數並調用它們?還是將其設置為a注冊助手功能?
從Meteor 1.0.3.1開始,似乎可以找到並調用輔助函數,盡管很明顯, 不應該這樣使用它。
仍然可以做到:
Template.foo.__helpers[" fooFn"]()
請注意函數名稱的前導空格。
解決此問題的另一種方法是將函數附加到全局名稱空間,然后從代碼中的其他位置調用該功能,如user3557327
所述。
另外,您可以使用:
Template.registerHelper('myHelper', function (){return 'Look At Me!'})
注冊全局助手,並使用以下命令顯式調用它:
UI._globalHelpers['myHelper']()
我認為這將是一個更好的方法: 如何在模板幫助器中使用Meteor方法
定義一個函數並將其附加到模板。 從渲染的以及模板幫助器中調用該函數。 就像MrMowgli所說的那樣,您可能不是“應該”從.js文件中調用模板幫助程序,而只是從...中調用,將來可能會中斷。
例如,定義一個函數並將其附加到模板上:
Template.Play.randomScenario = function () { // HACK HACK HACK }
然后從生命周期方法中調用它
Template.Play.created = function () {
Template.Play.randomScenario();
};
scenario: function () {
return Template.Play.randomScenario();;
},
我有同樣的問題,這是我使用的解決方案。 希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.