jQuery Templatesを使用したいと思います。一見すると、{{tmpl}}タグが行く方法だと思われますが、私はテンプレート作成時に余分なステップを行う必要があり、これを行う方法を理解できません。ネストされたテンプレートの問題
データオブジェクトのプロパティに関連付けられたデータ型定義があります。下の例では、 'movie'はテキストフィールドであり、数値フィールドは 'released'されています。すべてのテキストフィールドは特定のテンプレートを使用するため、すべての数値フィールドを行います。これらのネストされたテンプレートは、それらが使用されているコンテキスト(ここではムービー)について何も知らないので、そこで使用されるタグは常に$ {value}だけです。 「外側の」テンプレートは、映画がどのように見えるかを知っています。タグ(ムービーおよびリリース)は、「内部」データ型関連のテンプレートに置き換えられます。追加のステップは、外側のテンプレート化が行われる前に$ {value}を置き換えることです。
私が思い付くことができるすべてはこれです:もちろん
//the template used for all string-fields
var templForStrings = "<b>${value}</b>";
//the template used for all numeric fields
var templForNum = "<i>${value}</i>";
//data of a movie
var data = {};
data.movie = "Cowboys and Aliens"; //a string field
data.released = 2011; //a numeric field
//the template to show a movie
var templForMovies = "<div>{{html movie}} ({{html released}})</div>";
//normally a loop over the fields here
var field = {value: data.movie};
data.movie = $.tmpl(templForStrings, field).fullhtml();
field.value = data.released;
data.released = $.tmpl(templForNum, field).fullhtml();
//now the movie template
$.tmpl(templForMovies, data).appendTo("body");
このシナリオが簡略化されます。データ型テンプレートはそれよりもはるかに複雑です。データは何でもかまいません。ここでは2つの異なる意味を持つ$ {value}のため、プラグインが提供するネストされたテンプレートの使い方はわかりません。しかし、私もfullhtml-Pluginを必要とする私のコード(よりエレガントかつ迅速な方法があるかなり確信している。本当にこれらのように、この
<div>${movie} (${released})</div>
のようなテンプレートを持っていいだろう、エンドユーザーによって作成可能です。あまりにも、できるだけ簡単であるべき
私は実際にDOMを使用してこの問題を回避しました。 – user414873
ありがとう、私はいくつかの値に異なるtdベースの "タイプ"をレンダリングするときに同様のことをしなければなりません。あなたがソリューションを好きなら答えとしてPlzマーク:) –