动态无线电字段数

时间:2013-06-21 19:14:57

标签: sencha-touch-2

我正在尝试创建一个多项选择课,我会在其中传递2到8个可能的答案,用户必须从中选择一个答案。如何动态地将我的项目传递给我的班级,并为每个可能的答案创建一个新的 radiofield ?这是我目前的课程,有两个可能的答案(红色,白色)


    Ext.define('Sencha.view.question.QuestionTypeOne', {
    extend: 'Ext.Container',
    xtype: 'question-type-one',
    requires: [
        'Ext.TitleBar'
        ],
    config: {
        height: '250px',
        width: '250px',
        items: [
            {

                xtype: 'fieldset',
                title: 'What\'s your favorite color?',
                instructions: 'Select one',

                defaults: {
                    xtype: 'radiofield',
                    labelWidth: '40%'
                },
                items: [
                    {
                        name: 'color',
                        value: 'red',
                        label: 'Red'
                    },
                    {
                        name: 'color',
                        value: 'white',
                        label: 'White'
                    }

                ]

            }
        ]
    },

    initialize: function () {
        this.callParent(arguments);
    }
    });

它会被调用这样的东西吗?

      {
         xtype: 'question-type-one',
         // question: "What's your favorite color?",
         // items: []
      }

1 个答案:

答案 0 :(得分: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);
}