2016-07-17 3 views
1

私はfieldsetの値をcheckboxToggleプロパティをtrueに設定してバインドできません。したがって、その設定は次のようになります。フィールドセット値をバインドする方法

xtype: "fieldset", 
title: "Box", 
checkboxName: "bounding_box",    
checkboxToggle: true, 
bind: { 
    collapsed: "{!rec.bounding_box}" 
} // results in error message: TypeError: this[c._config.names.set] is not a function 
// bind: "{!rec.bounding_box}" does not work either 

したがって、上記のコードは機能しません。

xtype: "checkbox", 
fieldLabel: "Show label",     
name: "show_label", 
bind: "{rec.show_label}" 

はそれで何が問題であり、私はそれをどのように修正することができます。しかし、非常に同じ技術が簡単なcheckbox分野で素晴らしい作品?

+0

私は、両方のフィールドが 'bool'型のモデルに追加する必要があります。 – Jacobian

+0

まあ、バグのようです。ドキュメントによると、 'fieldset'は' expanded'プロパティを持っていません。しかし、 'bind:{expanded: '{rec.bounding_box}'}'のようにバインドすると動作します。しかし、 'collapsed'プロパティーをバインドすると、それは機能しません。 – Jacobian

答えて

5

デバッグビルドで実行している場合、fieldsetにsetCollapsedメソッドがないため、バインドできないというエラーメッセージが表示されます。あなたはかなり簡単にそれを追加することができます:

Ext.define('AddSetCollapsed', { 
    override: 'Ext.form.FieldSet', 

    setCollapsed: function(collapsed) { 
     if (collapsed) { 
      this.collapse(); 
     } else { 
      this.expand(); 
     } 
    } 
}); 
+0

' expanded'プロパティーを使用する別の解決策が見つかりましたが、これは文書化されていません。 – Jacobian

+0

もう1つの問題は、このバインディングが一方向のみで機能することです。したがって、 'fieldset'状態を' collapsed'から 'expanded'に変更すると、レコードの対応するプロパティは変更されません。だから、ExtJSはいくつかの修正が必要なようだ。 – Jacobian

関連する問題