我有这段代码,其中包含一些布局中的项目。我想重复这个项目(firstRowButtons
)一段MaxNumber
次。
items: [
// for(i = 0; i < MaxNumber; i++)
{
xtype: 'firstRowButtons'
},
{
margin: '10 50 10 50',
padding: '10 20 10 20',
xtype: 'textfield',
name: 'Name',
fieldLabel: 'Survey Name',
maxLength: 100,
allowBlank: false,
disabled: true
},
{
margin: '10 50 10 50',
padding: '10 20 10 20',
xtype: 'combo',
fieldLabel: 'Number of Questions',
name: 'NofQuestions',
queryMode: 'local',
store: ['1', '2', '3'],
displayField: 'noOfQuestions',
autoSelect: true,
forceSelection: true,
disabled: true,
},
]
}, {
padding: '10 10 10 10',
xtype: 'secondRowButtons'
},
我知道循环不能在数组中使用。注释只是为了显示逻辑并指出我想重复的数组元素。
有任何帮助吗?
答案 0 :(得分:1)
您可以调用一个函数来返回一个items数组,并且可以在构建数组时应用自定义逻辑。只需确保调用具有适当范围的函数。
function buildItems(){
let items = [];
let maxNumber = 5;
for(let i = 0; i < maxNumber; i++) {
items.push({
xtype: 'firstRowButtons'
});
}
items.push({
margin: '10 50 10 50',
padding: '10 20 10 20',
xtype: 'textfield',
name: 'Name',
fieldLabel: 'Survey Name',
maxLength: 100,
allowBlank: false,
disabled: true
},
{
margin: '10 50 10 50',
padding: '10 20 10 20',
xtype: 'combo',
fieldLabel: 'Number of Questions',
name: 'NofQuestions',
queryMode: 'local',
store: ['1', '2', '3'],
displayField: 'noOfQuestions',
autoSelect: true,
forceSelection: true,
disabled: true
});
return items;
}
Ext.create('Ext.Panel', {
renderTo: Ext.getBody(),
items: buildItems()
});