バックボーンでは、model.get('att_name')
を介してモデル属性を取得する必要があるようです
オブジェクト内の任意のパブリックフィールドを取得する方法でそれらを取得することを事前に行います:model.att_name
誰もがこれを回避する方法を考えることができますか?
例:python worldでは、モデルのgetattrを次のようにオーバーライドします。
def getattr(self, att):
return self.get(att)
ああ、そして私はCoffeeScriptを使っています
取得/設定するためにget()
およびset()
またはdefaults
を使用するモデル属性は、_instance.attributes
_属性に格納されます。
また、これらはsync()
およびtoJSON()
に渡され、そこから返される属性です。したがって、fetch()
、save()
などの場合、_instance.attributes
_に格納されているものだけが渡されます。
もちろん、オブジェクトに_instance.foo
_のような通常の属性があることを妨げるものはありません。これらを他の属性として扱い、fetch()
およびsave()
に渡す場合は、モデルにカスタムparse()
を提供することで、これを行うことができます。デフォルトでは何もしません。とはいえ、バックボーンの慣例に準拠するためだけに必要な場合にのみ、絶対に必要であると考える場合にのみ、これを行う必要があります。
属性には _Model.attributes
_ でアクセスできます。そこから直接読み取ることができますが、set
を使用して変更できます。 Model.toJSON()
(note:toJSON()
は実際にはJSONを返しませんが、JavaScriptオブジェクトを返します)。
推奨される方法は、テンプレート、シリアル化などにtoJSON()
を使用することです。
本当に、この辺りに離れはありません。 model.attributes.att_name
、しかしそれはおそらくあなたが望むものではありません。
JavaScriptには(少なくともすべてのブラウザーでは)プロパティのアクセスをリダイレクトする機能がありません。