スタイル的には、JavaScript でこのケースを処理する最善の方法がわかりませんでした。
これを使用して、以前のモデルのコピーを入手できる場合はそれを取得します。次に、利用可能な場合は値に基づいて ImpairmentDiagnosisModel を作成しています。
this._previousModel = this.impairmentsCollection.get(this.model.get('id')) || '';
オプション1:
this._impairmentDiagnosisModel = new ImpairmentDiagnosisModel({
id: this.model.get('id'),
cdx: (this._previousModel && this._previousModel.get('diagnosis').cdx) || _.first(this._diagnosisClass).id,
nonKeyFactor: this._previousModel && this._previousModel.get('diagnosis').nonKeyFactor,
impairmentValue: this._previousModel && this._previousModel.get('diagnosis').impairmentValue,
side: this._previousModel && this._previousModel.get('diagnosis').side,
digit: this._previousModel && this._previousModel.get('diagnosis').digit
});
オプション 2:
if(this._previousModel) {
this._impairmentDiagnosisModel = new ImpairmentDiagnosisModel({
id: this.model.get('id'),
cdx: this._previousModel.get('diagnosis').cdx,
nonKeyFactor: this._previousModel.get('diagnosis').nonKeyFactor,
impairmentValue: this._previousModel.get('diagnosis').impairmentValue,
side: this._previousModel.get('diagnosis').side,
digit: this._previousModel.get('diagnosis').digit
});
}
else {
this._impairmentDiagnosisModel = new ImpairmentDiagnosisModel({
id: this.model.get('id'),
cdx: _.first(this._diagnosisClass).id
});
}
オプション #1 を使用すると、不要な空の属性がモデルに散らばりますが、それはここでは重要ではありません。サーバーが空の属性を受け取った場合、それらは無視されます。
オプション #2 を使用すると、コードが増えて読みやすくなりますが、効率が悪いようです。
この場合、どのような方法が望ましいでしょうか?