2012-06-27 8 views
5

AngularJSとBackbone.JSはどちらも素晴らしいフレームワークのように見えますが、私の既存のコードベースはMVCパターンを使用していません。これらのフレームワークはどちらも、最初から開始するか、コードベース全体をリファクタリングしてMVCパターンに従わせることを強制します。MVC以外のテンプレート&データバインディングを提供するjavascriptフレームワークを探します

私のデータのほとんどはmyobject.prototype.myfunction = ...のカスタムオブジェクトで、JSONとの間でシリアル化され、サーバーとjqueryテンプレートに格納されてレンダリングされます。

今はjqueryテンプレートを使用しています。私はビジネスロジックとDOM要素が混在するのが本当に好きでないことを除いて、私はそれらを使用することで問題はありません。 jQueryのテンプレートに2通りのデータバインディングがあったとすれば、私は天にいますが、現時点ではそうはしません。私はjsRenderとjsViewsが有望だと知っていますが、未来はまだ石で設定されておらず、プロダクションの準備ができていません。私は今日の生産コードを構築し、2年ごとに書き直し/リファクタリングする必要がなく、サポートして成長できるものが必要です。

だから、マスト:

  • jqueryの互換性
  • はテスト可能
  • データバインディング
  • 使用既存のjavascriptが
  • は主要なリファクタリングを必要としないオブジェクトをエンドツーエンドであること

PS AngularまたはBackboneの私の意見が不合理である場合は、正しい方向に私を指摘してください。

+0

http://api.jquery.com/jquery.tmpl/を見ましたか? – Lance

+1

jquery.tmplは廃止されました – Dimitri

+1

http://knockoutjs.com/はどうですか? –

答えて

3

Data LinkプラグインはjQueryテンプレートで使用するように設計されていますが、どちらもサポートされなくなりました。コードと例は、プロジェクトのgithubページにあります。

としては、著者がjsViews

Knockout.JSと呼ばれる新しいプロジェクトでこれらを交換する予定で、注意もともと心の中でjQueryのテンプレートを使用して設計された人気のデータ・バインディング・フレームワークです。以来、独自のテンプレートシステムを実装していますが、まだサポートしています。 Steve Sandersonのlightning talkのvideoを見てください。KnockoutとjQueryテンプレートのデモがあります。

+1

私は誰もが知りたいと思っていた、私が最終的に使用したフレームワークはKnockout.jsでした。私はそれに非常に満足しています。完璧ではありませんが、他のフレームワークよりも飛躍的に優れていると思います。それは十分に文書化されている、コミュニティのそれの多くの良い理解と私のために完全な意味があります。私は彼らがそれをMVVMやBSと呼んでいることを知っています。すべてを無視してサンプルに飛び込んで、使い方を始めるのは非常に迅速になります。 – ethermal

3

これは実際jquery.tmplのフォークでjsRenderjsViews

を愛します。同じ著者。彼らはまだプレリリースされていますが、新しい標準となり、うまくいけば、将来jqueryに戻って再統合されるでしょう。

+0

それは見た目が良く、プレベータ版で、私はそれが同じように苦しんでいると確信していますjqueryテンプレートの運命。だから私はその未来を少し心配しています。プロダクションコードに使用していますか? – ethermal

+0

はい、プロダクションコードで他のプレβ製品を使用しました。たとえば、jquery.buttonに巻き込まれたfg-buttonsがあります。私はコードを書き換えても構いません。私はそれが迷惑だと知っていますが、開拓者であることを愛しています:)また、私は同じ運命に苦しんでいないと感じています。 – Dimitri

0

データバインディングを提供する新しいテンプレートフレームワークが必要ですが、角度とバックボーンはより広い範囲を持つように思えます。

私はLinkedInがextensive evaluationのJavaScriptテンプレートライブラリを行った後に選ばれたDust.jsを使用していることを知っています。

2

テンプレート結合に対するフレームワークにとらわれない解答については、チェックアウトRivets.jsを行う。 Rivetsは一般的なMVCフレームワーク/マイクロフレームワークのほとんどで使用できますが、MVCフレームワークを使用していない場合は、簡単に操作できます。しかし、Rivets.jsにはテンプレート言語自体のサポートが組み込まれていません。

本当にJQuery.tmplを使用したい場合は、KnockoutJSをご覧になることをお勧めします。デモの例のパターンを考えれば、KnockoutJSに切り替えると、宣言的バインディング内にドメインロジックを混在させることは非常に簡単です。したがって、ビジネスロジックとプレゼンテーションレイヤーを完全に分離するための計画が少し必要です。ノックアウトJSのより良い理解を得るために公式ウェブサイトの他に、いくつかの不確実なリソースについてはknockmeout.netをチェックアウトすることをお勧めします。また、this postがあなたの決定に役立つかもしれません。

jquery.tmplの将来については、この執筆時点で多少疑問があることを考慮して、他の解決方法を検討することをお勧めします。 KnockoutJSはサードパーティのテンプレート言語と簡単に統合することができます。

+0

ありがとう、上記参照ノックアウトは最終的に私が選んだものです。 – ethermal

関連する問題