0

コントローラーをヒットせずに選択メニューを更新し、コントローラーで選択メニュー全体を再生成して、それぞれの Div に送り返すことは可能ですか? コントローラから JSON 形式でデータを送信できますが、Div 全体を送信したくありません ... .. DRY の原則に違反しているためです。これは非常に一般的なシナリオです。オブジェクトが変更された場合、それに応じて選択メニューを更新できるように、選択メニューに JS のオブジェクトをリッスンさせることができるかどうか疑問に思っています。オブジェクトは次のように作成できます。 {value,text} など ...ポインタはありますか?

選択は Web App でどのように生成されますか?

<form>
<content>
<div id=unique id>
<for each in some model>
   <option> <value>
</div>
<content>

Select Menu のこのようなフォームがたくさんあります... 毎回 select を別のファイルに書き込んで、それを再度呼び出す傾向があります。

<div id=unique id>
<for each in some model>
   <option> <value>
</div>

なぜ再利用しないのですか?1) コンテンツではなく Select のみを更新する必要があるため 2) メイン ページで取得したデータは、(DB から事前入力された) 辞書からのものであり、更新では、DB から直接データを取得する可能性があります ...

乾燥した原則に固執して、一部の UI リスナーによって一部の Object に SELECT コンテンツを入力するだけでよいでしょうか? オブジェクトが変更された場合は、新しい値で選択を更新します。新しい SELECT MENU の JSON を取得するために AJAX を記述します。

4

1 に答える 1

1

どうですか:

$.each(jsonData, function(index){
    $('select').append('<option value="'+jsonData[index].value+'">'+jsonData[index].text+'</option>');
});

JSON データが次のようになっている場合:

[
  {
    "value":1,
    "text":"Text for First Item"
  },
  {
    "value":2,
    "text":"Text for 2nd Item"
  }
]

私はあなたの質問を理解することを願っています;-)

于 2013-07-30T14:11:50.440 に答える