中に作成したオブジェクトを保存し、そのオブジェクトを .NETTemplate.myTemplate.rendered = function ( ) { ... }
で使用したいと考えていますTemplate.myChildTemplate.helpers(helpers)
。これまでのところ、私はグローバル オブジェクトを使用することに頼っていますが、それは非常にハッキリしています。これを行うための素敵なテンプレート中心の方法はありますか?
2 に答える
2
UI._templateInstance();
andを使用できますReactiveDict
(データを反応的にするためにも)(で追加meteor add reactive-dict
Template.myTemplate.created = function() {
this.templatedata = new ReactiveDict();
}
Template.myTemplate.rendered = function() {
this.templatedata.set("myname", "value";
};
Template.myTemplate.helpers({
myvalue: function() {
var tmpl = UI._templateInstance();
return tmpl.templatedata.get('myname');
}
});
これにより、このテンプレートをページで複数回使用できますが、グローバル変数や非インスタンス変数では許可されない、各テンプレートへの変数スコープを引き続き持つことができます。
警告のメモ、現在の鉄のルーター (0.7.1) は壊れています。UI._templateInstance();
これは現時点で未解決のバグです。
于 2014-07-07T08:45:27.193 に答える
1
残念ながら、そのような方法はまだありません。
一般的なパターンは、リアクティブ dict をファイル全体の変数として使用するか、複数のファイルへのアクセスが必要な場合はテンプレートに関連する名前空間で使用することです。このソリューションの欠点は、そのような変数が同じテンプレートのすべてのインスタンス間で共有されることです。そのため、このテンプレートを複数の場所でレンダリングする場合は、これを回避する必要があります。
var data = new ReactiveDict();
Template.myTemplate.rendered = function() {
data.set('key', 'value');
};
于 2014-07-07T07:22:59.053 に答える