javascript - 使用循环创建一个简单的 Sencha 组件

标签 javascript extjs sencha-touch

我们如何在 Sencha ExtJS 中用 for 循环替换硬编码数据?
例如,我定义了以下列表:

Ext.application({  

    launch: function() {

        Ext.create('Ext.List', {
            fullscreen: true,
            itemTpl: '{title}',
            data: [{
                title: 'Item 1'
            }, {
                title: 'Item 2'
            }, {
                title: 'Item 3'
            }, {
                title: 'Item 4'
            }]
        });      
    }
});

如何将数据替换为如下内容:

Ext.application({
    launch: function() {

       Ext.create('Ext.List', {
            fullscreen: true,
            itemTpl: '{title}',
            data: [
               for(int i=0;i<5;i++){
                  {title: 'Item '+i}, 
               }
              ]
        });

    }
});

最佳答案

这确实是基本的东西 - 我建议您在投入时间学习框架之前熟悉基本的语言结构。有多种方法可以做到这一点...

参见:MDN: A re-introduction to Javascript

<小时/>

最简单的方法首先创建配置数据并将其分配给变量:

Ext.application({
    launch: function() {

        var listData = [];
        for(var i=0;i<5;i++) 
            listData.push({title: 'Item '+i});

        Ext.create('Ext.List', {
            // ...
            data: listData
        });
    }
});

...或者当您处于全局执行范围并且不想用不必要的变量污染 窗口 对象时- 或者只是对“one-liners”有强制症 - 你可以利用内联函数/闭包:

Ext.create('Ext.List', {
    // ...
    data: (function(){
        var data = [];
        for(var i=0;i<5;i++) 
            data.push({title: 'Item '+i});
        return data;
    })()
});

...或者有时我使用以下内容,因为我认为它看起来更整洁(但这是主观的):

Ext.create('Ext.List', {
    // ...
    data: Ext.Array.map(Array.apply(null, Array(5)), function(o,i){
        return {title: 'Item '+i};
    })
});

关于javascript - 使用循环创建一个简单的 Sencha 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971490/

相关文章:

javascript - 无法创建堆叠条形图?

ExtJS CheckboxGroup 标签换行

android - Sencha Touch web 移动应用程序开发

css - 在 Sencha Touch 中隐藏元素但保留 CSS 间距

javascript - 为什么此代码不滚动到 keydown 上的定位类?

javascript - 按下按钮后停止和启动动画(Javascript)

javascript - 将字符串转换为整数时出现错误

Extjs - 如何填充单个商店的组合框?

javascript - ExtJS 将值发送到窗口

extjs - 在 Ext.DataView 中显示存储的有限子集(或单个记录)