0

モデル データを入力する編集フォームを Backbone アプリに設定しました。現在、ModelBinder なしで動作していますが、ModelBinder に切り替えたいと考えています。

値がモデルの ID にマップされる選択ボックスがあり、選択したオプション テキストはモデルの文字列フィールドにマップする必要があります。ユーザーは、placeId と placeName を入力するドロップダウンからモデルを設定するか、テキストボックスを使用して placeName のみを入力するかを選択できます。

私の質問は、これをどのように取得する$("#placeName option:selected").text()かです-placeNameセレクターに入れますか?

これが私のモデルとバインディングオブジェクトです:

// The Place Model
App.Models.Place = Backbone.Model.extend({
    defaults: {
          placeName: "",
          placeId: ""
  }
});

// Backbone Model Binder bindings
   bindings: {
       placeName:[
           {selector: '$("#placeName option:selected").text()'}, 
           {selector: '#textInputPlaceName'}] ,
    placeId:'[name=placeName]'
}

ここにHTMLがあります。UI には、ドロップダウンまたは入力フィールドを選択するためのチェックボックスがあります。

<select id="placeName" name="placeName" class="inline">
        <option value="0" selected="selected"></option>
        <option value="444">exit 1</option>
        <option value="555">exit 2</option>
        <option value="666">exit 3</option>
</select>
<input id="textInputPlaceName" name="textInputPlaceName class="inline" disabled>

フィドルの同じコードは次のとおりです: http://jsfiddle.net/kDBvQ/

4

1 に答える 1

0

modelBinderバインディングの外側の関数で値を設定および取得することになりました。おそらくコンバーターを使用することもできましたが、コンバーターを使用しない方が簡単でした。

于 2013-01-22T17:29:28.203 に答える