私はこのアイデアが本当に好きで、二度考えることなく、jQueryの「テンプレート」の既製のソリューションをインターネットで検索し始めました。
私が見つけたものは次のとおりです。
発見について簡単に
jQueryテンプレートは、
${myvar:func1:func2}
という形式の式を入力パラメーターによって渡された値に置き換えるシンプルで直感的なプラグインです。
Nano-ほとんど同じことをしますが、プラグインのコードは5行かかります。
Pureは「DOMベース」のテンプレートエンジンです。実際、domツリー上のオブジェクトデータの重ね合わせにより、すべての置換が発生します。
jQote-彼ら自身が主張するように-jQuery "Micro Template Engine"の下で書き換えられます。
jTemplatesは優れた機能を備えたかなり興味深いエンジンです( spanasikに感謝)
テンプレートとjQuery
jQueryフォーラムでは、テンプレートエンジンをjQueryコアに組み込むというトピックについてかなり活発な議論が行われました( link )。
特に、デモ版もJohn Resigによって作成されました( link )
私のテンプレートエンジン
私の意見では、テンプレートエンジンの中で最も成功しているのはjquery-tmplです(ただしデモです)。 しかし、私はその実装が本当に好きではなかっただけでなく、いくつかの方法が欠けていました。
そのため、私はそれを書き直して、小さな機能を追加することにしました(さらに、テンプレートを使用する可能性を示すデモを作成します)。
結果
作業の結果は、 jQuery.tplからダウンロードできます。すべてのソースはGoogle codeにあります 。
実際、ここにデモページがあります 。
主な機能
- PHPのような構造(「{%」と「%}」の間のコード、残りのテキスト)
- 名前付きテンプレートを使用する
- 独自の修飾子を追加する機能(
$.template.modificators
オブジェクトを介して) - 修飾子catch 、 それぞれ
- "@"および "〜"修飾子を使用して、関数( およびscope )をすばやく作成します
- テンプレートのキャッシュ
- コード外の行はevalを通過しません($ n形式の変数に置き換えられます)
- テンプレートはデータを保存できます(テンプレートからアクセス可能な$スコープ変数)
- オプションのパラメーターを指定する機能(パラメーターにアクセスする場合、指定されていなければエラーは発行されません)
- "{%="と "%}"の間のコードは、文字列だけでなくjQueryオブジェクトも返すことができます
批判とコメントを歓迎します。
PS
IE6で動作します