2

簡単にするために、私はすべきですか

$(@el).html @template(model: @model)

また

$(@el).html @template(@model.toJSON())

私は最初の道を進んでいました、それが私が教えられたことです。しかし最近、私は2番目の方法も受け入れられることに気づきました。テンプレートのレンダリング中に、少なくとも@ model.get( "attribute_name")を大幅に節約しました。

それで、最良の方法は何ですか?

4

1 に答える 1

3

@model.toJSON()あなたが言及した理由から、私はより良いと思います:それはよりクリーンなテンプレートになります。

これ:

<div><%= name %></div>

目にはより簡単です:

<div><%= this.model.get("name") %></div>

Backbone.jsのサンプルアプリのいくつかを見ると、それらが.toJSON()アプローチを使用していることがわかります。


テンプレートが完全なViewオブジェクトにアクセスできるようにするかどうかも問題だと思います。明らかに、一度使用するとそれは不可能ですtoJSON()。私にとって、そのアクセス権がないことは、関心の分離を尊重する上でプラスになります。テンプレートは、最小限のコードで、可能な限り通常のHTMLマークアップに近い形で表示されるプレゼンテーションに関するものでなければならないからです。

于 2012-12-09T00:19:16.877 に答える