0

プロバイダーレコードを編集するためのフォームがあります。プロバイダーレコードは複数のアドレスと関係があるため、プロバイダーは自宅、オフィス、休暇などのアドレスタイプを持つことができます。

サーバーからのjsonaddressesオブジェクトは、プロバイダーが持っているアドレスを取得するだけなので、プロバイダーが「休暇」タイプのアドレスしかない場合は、それが唯一のレコードになりますが、編集フォームでは、すべてのアドレスが必要です。既存のものを編集したり、新しいものを追加したりするために入力します。

私のアプローチがうまくいくかどうかはわかりませんが、フォームにすべてのアドレス可能なタイプを含む「jsonBaseAddresses」があり、このオブジェクトはKnockoutを使用してフォームにバインドされているため(これは実際に機能します)、「jsonRemoteAddress」をマージします「jsonBaseAddresses」を持つために「jsonBaseAddresses」を使用しますが、リモートjsonオブジェクトに含まれるデータとマージします。

繰り返しますが、これが正しい方法かどうかはわかりません。助けに感謝します。これが私がやりたいことのjsFiddleサンプルです。

http://jsfiddle.net/HJrGf/4/

ありがとう

4

1 に答える 1

1

リモートアドレスを繰り返し処理して、ビューモデルのアドレスにプッシュしてみませんか?

var vm = new App(jsonBaseAddresses );
for ( var i = 0; i < jsonRemoteAddresses.length; i++){
vm.addresses.push(new Address(jsonRemoteAddresses[i]);
}

等々 ...

アドレスをマージするには、次のソリューションを使用できます。

  1. Equalsのようなアドレスにプロパティを導入し、一意のアドレスを識別するフィールドを比較できます

  2. この投稿で実装を選択してください2つのJavaScriptオブジェクトの同等性を判断する方法は? アドレスハッシュコードを取得し、上記のループで、マージするアドレスのハッシュコードを比較します。私は自分のプロジェクトの1つでこのソリューションを使用しました。また、このhttp://documentcloud.github.com/underscore/#isEqualも確認してください

于 2012-07-12T18:04:31.600 に答える