2017-11-06 8 views
0

私はviewmodelでラジオボタングループの選択項目を設定する際にいくつか問題があります。選択した値を要素の名前で設定できますか?私はviewmodel gender = trueが2番目の( '女性')ラジオボタンに一致すると予想しました。ExtJs set RadioGroupモデル別

答えて

1

いいえ、これはviewModelでは不可能です。 viewModelは常にbindの設定に依存しています。

バインド:「{性別}」、

あなたはラジオコントロールをバインドする必要はありませんが、あなたはradiogroupのをバインドします。あなたがしたいことは、radiogroupsimpleValue: trueに設定することです。

の作業例:

viewModel: { 
    data: { 
     gender: false 
    } 
}, 

items: [{ 
    xtype: 'radiogroup', 
    fieldLabel: 'Gender', 
    name: 'rbGender', 
    bind: '{gender}', // <- bind this field to the viewModel's "gender" value. 
    simpleValue: true, // <- use a boolean, not an object. 
    defaults: { 
     flex: 1 
    }, 
    ... 

あなたはnameで「古い学校」の方法を実行したい場合は、代わりのViewModelのform.setValues()form.getValues()を使用する必要があります。 ExtJSの5.xでは

simpleValueが利用できない、あなたが変更する必要がありますのでdefaultBindPropertyは、nullである:

viewModel: { 
    data: { 
     gender: { // In ExtJS 5, radiogroups can only take objects, not simple values 
      rbGender: false 
     } 
    } 
}, 

items: [{ 
    xtype: 'radiogroup', 
    fieldLabel: 'Gender', 
    name: 'rbGender', 
    bind: { // bind has to be a complex object, because defaultBindProperty is not available. 
     value:'{gender}' 
    }, 

    items: [{ 
     boxLabel: 'Male', 
     name: 'rbGender', // <- tell the radiogroup to put the rbGender property into these checkboxes 
+0

は、あなたのanswereをいただき、ありがとうございます。私はバインディングでそれをやってみましたが、何とかうまくいきません:https://fiddle.sencha.com/#view/editor&fiddle/29c7 – itstata

+0

2つの理由:1)あなたのExtJSバージョンはsimpleValueを理解できません:trueと同等のものはありません2)あなたのExtJSバージョンでは、radiogroupの 'defaultBindProperty'は' value'ではありません。私は私の答えを修正しました。 – Alexander

関連する問題