先日も質問させていただいたのですが、
観察可能な配列のアイテムを編集および作成するために同じフォームをノックアウトします
ここで、動作を少し変更したいと思います。
フィドルでわかるように、lagerone はhttp://jsfiddle.net/danne567/gTHpu/31/を実行しました。入力テキストからフォーカスを外すと、ターゲットが更新されます。あなたが更新ボタンをクリックするまで、これを遅らせたいと思います。
私はいくつかの回避策を実行しましたが、うまくいくようですが、満足していません:
アドレス オブザーバブルの内部プロパティは作成しません。Address オブジェクトに順序を追加し、それによって配列を並べ替えました。次に、アドレスを編集して更新をクリックするたびに、監視可能な配列から削除し、(変更されたフィールドを使用して) 再度追加し、配列を再度並べ替えます。
self.updateAddress = function() {
self.AddressEditingMode(false);
self.addresses.remove(this);
self.addresses.push(new Address(ko.utils.unwrapObservable(self.formAddress),self.EditingAddressOrder()));
self.addresses(_.sortBy(self.addresses(), function(address) { return address.Order; }));
self.emptyAddressForm();
};
私の説明と文脈を合わせるのが難しいことは理解していますので、必要なことは何でも私に指摘してください.
ありがとう、
マルコ
Ps。_.sortBy はアンダースコア関数用です。