1

AJAX multiselect を使用した Angular ui-select2 - 最終的な選択値を json ではなく ID として取得する

問題文

モデル内の ID の配列を編集するために、tokeninput/chosen/select2 スタイルの UI コントロールを使用したいと考えています。その ID の配列は、私がエディター/フォームを作成している大きなモデルの 1 つのプロパティの値です。ID の配列を編集した後、モデルをサーバーに送信するときに、そのプロパティを json オブジェクトの配列としてではなく、ID の配列として送信する必要があります。

angular の ui-select2 コンポーネントを使用すると、プロパティの内容が json オブジェクトの配列に置き換えられます。編集が完了した後にそれを元に戻す方法は明確ではありません。間違ったコンポーネントを使用している可能性があると思いましたが、Angular でこの種のことを行う場合、すべてのスレッドが ui-select2 の使用を指しているようです。

説明

データ モデルは、ID の配列である「myProp」プロパティから始まります。

{"myProp":["4","6"]}

ui-select2 ディレクティブは、これらの ID を json オブジェクトに置き換えます。ui-select2 がロードされたモデルの例を次に示します。(このプランカーのライブデモ: http://plnkr.co/edit/vEf1VwnRHNYdB9AuR9zO ):

{"myProp":[{"id":"4","text":"Label for 4"},{"id":"6","text":"Label for 6"},{"id":7,"text":"Seventh","color":"blue"}]}

モデルを保存するときに、このプロパティをjson オブジェクトの配列ではなく、 ID の配列としてサーバーに送信する必要があります。したがって、基本的には、配列を json オブジェクトではなく id だけにフラット化したいと考えています。select2 API は、この ID の配列を返すvalメソッドを提供します。angular の ui-select2 コンポーネントのコンテキストでどのように使用できますか?

警告:複数のプロパティのページでこれを複数回行っているため、プロパティに固有のハードコードされた修正は機能しません。select2で編集しているプロパティに対して自動的に発生するものでなければなりません

サンプルコード

(このプランカーのコードを参照してください: http://plnkr.co/edit/vEf1VwnRHNYdB9AuR9zO )

4

1 に答える 1