Backbone.jsを使用attributes internal hashを直接変更するのではなく、setメソッドを使用してモデルのプロパティを設定することを強くお勧めします。backbone.jsモデルの内部属性ハッシュを直接設定する
しかし、 "change"イベントが自動的に発生しないこと以外は、内部ハッシュを直接変更する際に、他にどのような短所や "副作用"がありますか?
私が直面している問題は、setメソッドがオブジェクトリテラルを取りますが、実行時に決定された変数を使用して左辺を割り当てる必要があるということです。ありがとう。あなたはannotated source codeを見れば
myModel.set({
myProperty : myValue; //myProperty is a variable, so this is invalid syntax
})
//vs
myModel.attributes[myProperty] = myValue; //myProperty is a variable that can be evaluated
あなたのソリューションは素晴らしいと思います。この機能は、新しいBackboneリリースに統合する必要があります。注釈付きソースコードを指摘してくれてありがとう。あなたが正しいです、私は最初にそれを見ていたはずです。 – fortuneRice
nice!私はこのコードを12回書いたことがあり、それを方法にすることは考えていませんでした。 :) btw:これのために_.endendを使う必要はありません。 'Backbone.Model.prototype.setByName = function(...){...}'は同じことを...機能的に同じです。それを行うための別の方法です。 –
@Derick Bailey:おかしい...私は '_.extend'がプロトタイプを拡張するために余分な賢さを持っていると思っていました。実際には、変更のコレクションを持つオブジェクトを拡張することです。何もそこに狂っていない。私の答えを変えてそれを認めてください。ありがとう。 –