2012-04-01 4 views
23

jQueryテンプレートはベータ版になることはなく、jsRenderjsViewsは空白を埋めることになっています。私はBoris Mooreによって投稿された例をthis pageにチェックアウトしましたが、jsRenderとjsViewsの違いはありません。さらに、Borisは混乱に加わるために、もう一方の例ではBorisを使っています。だから問題は、それらの2つがどのように関連しているのか(または異なるのか)です。jsRenderとjsViewsの違い

答えて

49

JsRenderはテンプレートエンジンです。 JsViewsはデータバインディングエンジンです。

JsRenderは、テンプレート(埋め込まれたトークンがデータで置き換えられている静的HTML/CSS)を使用してHTMLをレンダリングするのに役立ちます。シンプルなロジック、レンダリング値、およびカスタム関数をサポートしています。

JsRenderの上に構築されたJsViewsは、オブジェクト/プロパティに観測可能性を追加します。これにより、jsonオブジェクトをHTMLターゲットにリンクし、2ウェイのデータバインディングを取得できます。

もちろん、それはもっとありますが、それは60秒の答えです。それは役に立ちますか?

+0

これは確かに、より包括的な答えにどのようなリンクを与えることができますか? –

+4

ここに私が最近JsRenderで書いた記事があります... MSDN Magazineで今すぐ出てきました:http://msdn.microsoft.com/en-us/magazine/hh882454.aspx –

+1

これは私の意見では受け入れられる答えでしょう – Blowsie

2

jsRenderはテンプレートです。jsViewsはテンプレートであり、データバインディングです。したがって、オブジェクト、リスト、またはクラスからデータを出力するだけの場合は、jsRenderを使用します。したがって、テンプレートをレンダリングします。 jsViewsは、他の多くの素晴らしい機能の中でリアルタイムデータバインディングに使用されます。したがって、それを使用してテンプレートをレンダリングし、データバインドされたフィールドがある場合、クライアント側でフィールドを変更すると、実際にオブジェクトを取得したものに変更されます。

たとえば、私の仕事のこの小さなスニペットでは、これを実際に使用しています。それはそう、このオブジェクトのすべてののoccuranceでHTML

<ul class="question-resource-list"> 
    {^{for QuestionResources tmpl="#questionResourceTemplate" ~parentQuestion=#data /}} 
</ul> 

に使用されている

//this is the script that handles the template 
<script id="questionResourceTemplate" type="text/x-jquery-tmpl"> 
    <li class="default-{{:IsDefault}}"> 
     <label data-link="visible{:!IsPageSpecific}" class="surv mleft5"><strong>{{:Type}}</strong></label> 
     <label data-link="visible{:IsPageSpecific}" class="surv mleft5"><input type="text" data-link="Type" /></label> 
     <a data-link="visible{:IsDefault}" href="#" action="deletequestionresource">Delete</a> 
     <br /> 
     {^{for QuestionResourceTexts tmpl="#textTemplate" ~parentQuestionResource=#data ~textboxClass="textbox" /}} 
    </li> 
</script> 

そして、これがあるが、それはテンプレートをレンダリングします。ここにはヘルパー機能もあります。テストのためにブーリアン値を返すなどして、wrappperのバインド時間のようなデータに作用するようなものに使うことができます。うまくいけば、これは、この応答の前に既に答えられている既に完全な応答に追加するのに役立ちます。ドキュメントから

1

はJsRenderはDOMで 挿入するための準備ができて、文字列にテンプレートをレンダリングするために使用されています。

また JsRenderテンプレートへのデータバインディングを追加し、 が簡単にインタラクティブなデータ駆動型の単一のページのアプリやウェブサイトを作成するための本格的なMVVMプラットフォームを提供JsViewsプラットフォームで使用されています。

関連する問題