2

編集: これは Meteor 1.0 では関係ありません。最初の構文は推奨されておらず、2 番目のみがサポートされています。

Meteor で明らかにヘルパーと呼ばれるものを定義するには、2 つの方法があるようです。

Template.foo.helper1 = function() { ... }

他の方法:

Template.foo.helpers({
  helper2: function() { ... }
});

2つの間にセマンティックまたは使用法の違いはありますか? 私が見ることができる唯一の制限は、最初の使用法で予約済みのキーワードを使用できないことです。この区別が歴史的な理由だけで生じたのか、それとも何か他の理由があるのか​​ 疑問に思っています.

4

3 に答える 3

9

http://docs.meteor.com/#template_helpersによると、それらは構文を除いて同等であり、Template.myTemplate.foo構文は予約済みのテンプレート名では機能しません。

に渡された辞書を使用Template.myTemplate.helpersする利点は、複数のテンプレートで再利用できることです。

    var reusableHelpers = { stuff: function() { return "stuff"; } };
    Template.foo.helpers( reusableHelpers );
    Template.bar.helpers( reusableHelpers );
于 2013-06-14T02:06:33.090 に答える
0

あなたが探しているのは、ここにあるハンドルバーに関する詳細だと思います:

http://handlebarsjs.com/expressions.html

于 2013-06-14T01:53:32.220 に答える
0

そこで答えたように: Sharing functions between templates between Meteor , with Meteor 1.0 here now, これは変更されたようです. 掘り下げた結果、以下を使用してヘルパー間でコードを再利用できることがわかりました。

https://docs.meteor.com/#/full/template_registerhelper

Template.registerHelper("checkedIf",function(value){
  return value?"checked":"";
});

これにより、すべてのヘルパーで利用できるようになります!

于 2014-11-03T11:38:35.993 に答える