jsrenderテンプレートの値でグローバルJavaScript変数を更新しようとしています。どうすればそれを達成できますか...
私はフィドルを作成しましたhttp://jsfiddle.net/4RH7n/8/
そのjavascript変数に最後の映画名を入れる必要があります。
jsrenderテンプレートの値でグローバルJavaScript変数を更新しようとしています。どうすればそれを達成できますか...
私はフィドルを作成しましたhttp://jsfiddle.net/4RH7n/8/
そのjavascript変数に最後の映画名を入れる必要があります。
カスタムタグとヘルパーを簡単に登録して、グローバル変数にアクセスまたは変更できます。ここにサンプルがあり(コードはここにあります)、両方の方法を示し、テンプレート内からのグローバルの設定と取得の両方を示しています。ヘルパー/カスタムタグは、使用するよりも優れて{{* ...}}
います(そうすることで、コードとマークアップをより適切に分離できるため)-ただし、{{*
構文を使用する場合は、を設定する必要がありますallowCode=true
。(この例を参照してください)。
上記のアプローチは、独自の拡張機能を使用して任意のグローバルにアクセスできるようにする方法です。ただし、ほとんどのシナリオでは、アクセスしたい特定のグローバルのみが存在する可能性があります。.render()
その場合、次のように、呼び出し(または.link()
JsViewsを使用している場合は呼び出し)のオプションとしてグローバルを渡すのは非常に簡単です。
...render(myData, { foo: myFooGlobal, bar: myBarGlobal });
次に、次のように、テンプレート内の任意の式でそれらにアクセスします。
... {{:~foo}} ... {{for ~bar}} ... {{/for}} ...
すべてのテンプレートから(または特定のテンプレートへのすべての呼び出しに対して)これらのグローバルにアクセスできるようにする場合は、代わりにグローバル(またはテンプレート固有)のヘルパー/テンプレートパラメーターとして登録できます。そうすれば、次のことを行う必要はありません。レンダリング/リンク呼び出しでそれらを渡します。
たとえば、すべてのテンプレートについて、それらをグローバルに登録するには、次のようにします。
$.views.helpers({
foo: myFooGlobal,
bar: myBarGlobal
});
~foo
次に、 (またはfoo()
関数に対して)を使用して、上記とまったく同じ方法でそれらにアクセスします。
これらすべてのアプローチのサンプルはGitHubにあります。
上記で参照したドキュメントとサンプルに加えて、 http://www.jsviews.com、特にこことここに、はるかに新しいドキュメントとサンプルがあります。
何を求めているのかよくわかりません。データはテンプレートから取得されたものではなく、すでにそのオブジェクトにデータがあります。直接使用してください:
window.abcfx = function() {
alert(movies[movies.length-1].name);
}