ExtJs 表单渲染根本没有发生

Posted

技术标签:

【中文标题】ExtJs 表单渲染根本没有发生【英文标题】:ExtJs Form Rendering not happening at all 【发布时间】:2013-03-06 12:44:42 【问题描述】:

我正在尝试使用 ExtJS 创建一个表单。文件放置正确,但没有进行渲染:

index.html

<html>
<head>
    <title>Hello Ext</title>

    <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css">
    <script type="text/javascript" src="../extjs/ext-debug.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
</head>
<body>
    <div id="aa"></div>
</body>
</html>

app.js

Ext.create('Ext.form.Panel', 
    renderTo: document.getElementById('aa'),
    title: 'User Form',
    height: 130,
    width: 280,
    bodyPadding: 10,
    defaultType: 'textfield',
    items: [
        
            fieldLabel: 'First Name',
            name: 'firstName'
        ,
        
            fieldLabel: 'Last Name',
            name: 'lastName'
        ,
        
            xtype: 'datefield',
            fieldLabel: 'Date of Birth',
            name: 'birthDate'
        
    ]
);

有人知道我错过了什么吗?

谢谢

【问题讨论】:

【参考方案1】:

在您的 app.js 中,尝试在触发 onReady 事件时运行该代码,例如

Ext.onReady(function()
    Ext.create('Ext.form.Panel', 
        renderTo: document.getElementById('aa'),
        title: 'User Form',
        height: 130,
        width: 280,
        bodyPadding: 10,
        defaultType: 'textfield',
        items: [
            
                fieldLabel: 'First Name',
                name: 'firstName'
            ,
            
                fieldLabel: 'Last Name',
                name: 'lastName'
            ,
            
                xtype: 'datefield',
                fieldLabel: 'Date of Birth',
                name: 'birthDate'
            
        ]
    );
);

【讨论】:

非常感谢格兰特,我想通了【参考方案2】:

只需使用Ext.onReady():

添加一个在 DOM 准备好时调用的函数,所有必需的 类已加载。

如果 DOM 准备好并且所有的类都已加载,则传递的函数是 立即执行。

工作示例:http://jsfiddle.net/Ld5e6/

【讨论】:

非常感谢 CD 。明白了,没有触发 onReady()

以上是关于ExtJs 表单渲染根本没有发生的主要内容,如果未能解决你的问题,请参考以下文章

Extjs Combo - 为啥在我没有创建表单时加载组合包含组合

Extjs - 高级搜索表单

extjs grid 复制问题还有一种解决方式.

extjs 渲染器范围

保存表单(EXTJS 中的代码)

ExtJS - 更新 DIV 后无法再次渲染窗口