私は Breezejs を使用しています。dummy
いくつかのデータで満たされた観察可能なエンティティがあるとしましょう。ユーザーdescription
は、html ページの入力ボックスを介してこのエンティティのプロパティを変更しました。ユーザーがページ上の他の入力ボックスでこのエンティティの他のプロパティも変更した可能性があります。私のエンティティのentityStateはModified
現時点です。次に、いくつかのチェックを実行し、コードによってこのdescription
プロパティの変更のみを元に戻す必要があります。
これが唯一の変更である場合、entityState を次のようにしたいと考えています。Unchanged
このエンティティに他の変更がある場合は、それらをそのままにして、プロパティのみを元に戻したいと思いdescription
ます。
なぜそれが必要なのですか?ページに保留中の変更がある場合は、 ボタンSave
とCancel
ボタンを表示します。変更が 1 つしかなく、それを元に戻す場合、これはロジックではなくSave
、Cancel
ボタンを有効にします。
出来ますか?
ありがとう。
アップデート
これが私の実際の実装です:
private tryReject() {
// if any modified values are the same as original values >> reject
var rejectPossible = true;
for (var name in this.dummy().entityAspect.originalValues) {
var oldVal = this.dummy().entityAspect.originalValues[name];
var newVal = this.dummy()[name]();
if (oldVal != newVal) rejectPossible = false;
}
if (rejectPossible) this.dummy().entityAspect.rejectChanges();
}
たぶん、賢いまたはよりクリーンな方法がありますか?