2011-08-12 5 views
4

サーバ(レール付き)とクライアント(javascript付き)を使用している場合のMustacheのベストプラクティスに関するドキュメントはありますか?サーバ(レール)とクライアント(JavaScript)で口ひげのレンダリング

# hello_world.mustache 
Hello {{planet}} 

# some other file 
<% 
hello_world_template = File.read(File.dirname(__FILE__) + "/hello_world.mustache") 
%> 

<script id="hello_world_template" type="text/x-jquery-tmpl"> 
    <%= hello_world_template %> 
</script> 

<script> 
    // $.mustache = using mustache.js and a jquery mustache wrapper 
    // search on "Shameless port of a shameless port" 
    document.write($.mustache($("#hello_world_template").html(), { "planet" : "World!" })); 
</script> 

<%= Mustache.render(hello_world_template, :planet => "World!") %> 

上記はスケーラブルではありません。私はこれのために私自身のエンジンを作っていないことを望むだろう。

サーバーとクライアントでテンプレートを再利用できる、より完全なテンプレートエンジンがありますか?

さらに、サーバーとクライアントのネストされたテンプレートを考慮したテンプレートですか?

+0

これを達成する最善の方法は、Express Webサーバー、RequireJS、Backbone.js、および任意のテンプレートエンジンでNode.jsを使用することです。クライアントまたはサーバー上で美しく動作します。 –

答えて

5

利用可能Poirotあり:口ひげ+ Railsの3

+2

私はこれをチェックします、ありがとう。私はアイソトープと呼ばれるものも見たことがあります。それを今読んで。 http://devign.me/isotope-hybrid-ruby-on-rails-template-engine-for-client-side-and-server-side/ –

+0

も問題ありません。 – apneadiving

2

ここレール構文のルビーに慣れてなく、私のテイクです:

a)は、サーバー側でマークアップを生成したいのはなぜ(オプションであれば)常にjsonデータをクライアントに送信してjs口頭エンジンに処理させます

b)サーバーサイドのレンダリングエンジンを維持したい場合、できることあなたのビルド時に実行するスクリプトを書く(または、Ruby on Railsでこれに相当する)すべてのテンプレートを適切な命名規則でうまくスコープされたJSファイルに結合します。

として何かは、次のとおりです。

var MUSTACHE_TEMPLATES= MUSTACHE_TEMPLATES || (function(){ 
var template1= "<big ass template>"; 
var template2="<small template>"; 

return 
{ 
template1: template1, 
template2: template2 
} 
}()); 

あなたはそのアプローチをどう思いますか?今すぐテンプレートを1つの場所に置いて、キャッシュされているjsファイルの利点を得ることができます。

+0

すてきなアプローチ、+1 – apneadiving

+0

私は、Javascript以外の教祖が把握するのがより明示的で簡単なので、むしろ

  • 11. 外部テンプレートを使った口ひげ
  • 12. 口ひげ+ネストされたオブジェクト
  • 13. 口ひげjsの原因は、私は、次の口ひげjsのテンプレートを持っているリソースエラー
  • 14. 翡翠テンプレートと口ひげテンプレートの比較と比較
  • 15. 口ひげテンプレートオブジェクトのキーとして使用し、配列値は
  • 16. 口ひげ/ jQuery/javascript - 口ひげ変数のメソッドを実行するにはどうすればいいですか?
  • 17. 以下の例では口ひげ配列
  • 18. ローカライゼーションを口ひげテンプレートで直接使用できますか?
  • 19. Expressのための口ひげ(のような)テンプレートエンジン?
  • 20. ひげそりとドロップダウンでこのjsをレンダリングするには
  • 21. 口ひげテンプレートの空白の出力、connect&node.js
  • 22. ひげそりパラメータ付きの口頭番号
  • 23. ロード口ひげテンプレートは、生の文字列
  • 24. 口ひげ(またはハンドル)二つのリスト
  • 25. 配列上の口ひげレンダー()が動作しない
  • 26. 口ひげ:最初の文字を破棄する方法
  • 27. DOM例外8エラー口ひげテンプレート&jqueryの石工に
  • 28. HTML5口ひげ私は口ひげファイルを持っている、と私は、配列を反復処理しています
  • 29. 口ひげが定義されていません
  • 30. 部分的データを口ひげに埋め込む