私はいつもモデルは関係なく、入力の提供小文字で名前を保存するようにする方法を見つけようとしているBACKBONE.JS - カスタムセッター
window.model= Backbone.Model.extend({
defaults:{
name: "",
date: new Date().valueOf()
}
})
ような単純なバックボーンモデルを想像してみてください。すなわち、
model.set({name: "AbCd"})
model.get("name") // prints "AbCd" = current behavior
model.get("name") // print "abcd" = required behavior
これを行う最善の方法は何ですか?
- オーバーライドこのベースモデルでの変更を待機し、消毒の入力を保存する「に設定」方法
- 使用「SantizedModel」:ここで私は考えることができるすべてです。すべてのビューコードは、代わりにこのサニタイズされたモデルを渡されます。
私が言及した特定の "小文字への"例は、技術的には検索時にビューで処理する方が良いかもしれませんが、たとえば、ユーザーがポンドで値を入力するという別のケースを想像してください。 $ sは私のデータベースにあります。同じモデルに対して異なる見解があるかもしれませんし、どこでも "toLowerCase"を行う必要はありません。
思考?
ありがとうございました。私はこれも考慮しましたが、これはセットアサイン機能をオーバーライドするか、小文字に設定してバックボーンセットに渡す新しい "setProperty"機能を追加すると、読みやすくするための段階であると考えられます。私が何かを逃していない限り? – Naren
'set'メソッドをオーバーライドして、何をする必要があるのかを確認するのは間違いありません。 'Backbone.Model.prototype.set'をいくつかのプリプロセッサを呼び出すように拡張することも考えられます。これは次のようなものです:https://gist.github.com/1310972 –
バリデーションはsaveメソッドoptions.validate = trueが設定されている場合(サイレントはここでは使用しませんが、答えはかなり古いです) – webstrap