0

質問と、ユーザーが 1 つを選択する必要がある 2 から 8 の可能な回答を渡す多肢選択クラスを作成しようとしています。アイテムをクラスに動的に渡し、可能な回答ごとに新しいラジオフィールドを作成するにはどうすればよいですか? これが私の現在のクラスで、2つの可能な答え(赤、白)があります

    Ext.define('Sencha.view.question.QuestionTypeOne', {
    拡張: 'Ext.Container',
    xtype: '質問タイプ1',
    必要: [
        「Ext.TitleBar」
        ]、
    構成: {
        高さ: '250px',
        幅: '250px',
        項目: [
            {

                xtype: 'フィールドセット',
                title: '好きな色は何ですか?',
                指示: '1 つ選択',

                デフォルト: {
                    xtype: 'ラジオフィールド',
                    labelWidth: '40%'
                }、
                項目: [
                    {
                        名前: '色',
                        値: '赤',
                        レーベル: 「レッド」
                    }、
                    {
                        名前: '色',
                        値: '白',
                        レーベル: 「ホワイト」
                    }

                ]

            }
        ]
    }、

    初期化: 関数 () {
        this.callParent(引数);
    }
    });

そして、それはこのようなものを呼び出すでしょうか?

      {
         xtype: '質問タイプ1',
         // 質問: "好きな色は何ですか?",
         // アイテム: []
      }
4

1 に答える 1

1

ビューを作成しているquestion-type-oneときに、質問/回答のリストを渡すことがinitializeでき、関数内でこのデータを反復処理して項目をフィールドセットに追加できます。このためには、ビュー クラスで null config q & a を保持する必要がある場合があります。

var question = Ext.create("Sencha.view.question.QuestionTypeOne", {
  q : "blah blah blah",
  a : {"a1", "a2", "a3"}
});

次に、初期化関数で

initialize: function () {
    this.callParent(arguments);
    var question = this.config.q;
    var answers = this.config.a;
    var container = this.down('fieldset');
    // now iterate over answers and all container.add(answerdfield);
}
于 2013-06-24T06:22:32.130 に答える