4

backbone.js とさまざまなテンプレート システムについて知りたいと思っていたのですが、オブジェクトをテンプレートに渡してレンダリングする場合のベスト プラクティスは何でしょうか。

バックボーン モデル全体を渡し、<%= model.get('name') %> を使用します。

または model.toJSON() を渡し、単に <%= name %> を使用します

これら2つの方法のいずれかを使用することの長所/短所は何ですか? または、トレードオフを気にせずに、最も役立つと思うものを選択できますか?

4

1 に答える 1

4

それはすべて、あなたが本当にやりたいことにかかっています。ほとんどのテンプレート システムでは、任意の JavaScript オブジェクトをテンプレートに渡し、そのオブジェクトのメソッド、プロパティ、およびその他のビットを呼び出すことができます。

個人的には、常に をmodel.toJSON()テンプレートに渡します。modelしかし、あなたが示しているように、常にテンプレートに完全に渡して .get を呼び出す人を何人か知っています。

トレードオフはあまりありません。どちらを実行してもパフォーマンスが低下することはありません。_.clone(this.attributes).toJSON() の呼び出しは、舞台裏で呼び出しているだけなので、非常に高速です。toJSON() を渡す利点は、テンプレートに余分なコードを記述する必要がないことです。プロパティを直接指定するだけです。完全なモデルを渡す利点は、オブジェクトでメソッドを呼び出すことができることです...しかし、これは悪いことであり、メソッド呼び出しはテンプレートではなくビューオブジェクト内で行う必要があると主張します...それは本当に意見の問題ですが。

于 2011-09-07T12:30:04.223 に答える