2013-06-21 6 views
0

Я пытаюсь создать класс множественного выбора, где я передаю вопрос и где угодно от 2 до 8 возможных ответов, из которых пользователь должен выбрать один. Как я могу динамически передавать свои объекты в мой класс и создавать новое поле для каждого возможного ответа? Вот мой текущий класс с двумя возможными ответами (красный, белый)Динамическое число радиополя

 

    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

, создавая вид для question-type-one вы можете передать список вопросов/ответов и в initialize функции вы можете перебирать эти данные и добавить детали к вам Fieldset. Для этого вам может потребоваться сохранить нулевой конфиг 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); 
} 
Смежные вопросы