• ExtJs函数


    今天在学习的时候遇到了一个让我很郁闷的问题,当然啦也是因为俺是菜鸟的原因啦,先把正确的代码贴上:

    (function(){
    
    Ext.regModel('State', {
        fields: [
           'name','abbr','slogan'
        ]
    });
    
    var states = [
        {"abbr":"AL","name":"Alabama","slogan":"The Heart of Dixie"},
        {"abbr":"AK","name":"Alaska","slogan":"The Land of the Midnight Sun"},
        {"abbr":"AZ","name":"Arizona","slogan":"The Grand Canyon State"},
        {"abbr":"AR","name":"Arkansas","slogan":"The Natural State"},
        {"abbr":"CA","name":"California","slogan":"The Golden State"},
        {"abbr":"CO","name":"Colorado","slogan":"The Mountain State"},
        {"abbr":"WY","name":"Wyoming","slogan":"Like No Place on Earth"}
    ];
    
    var store11 = function createStore() {
        return Ext.create('Ext.data.Store', {
            autoDestroy: true,
            model: 'State',
            data: states
        });
    }();
    
    	Ext.onReady(function(){
    	
        var formPanel = Ext.create('Ext.form.Panel', {
            renderTo: 'form-ct',
            frame: true,
            title:'XML Form',
             340,
            bodyPadding: 5,
            waitMsgTarget: true,
    
            fieldDefaults: {
                labelAlign: 'right',
                labelWidth: 85,
                msgTarget: 'side'
            },
    
            items: [{
                xtype: 'fieldset',
                title: 'Contact Information',
                defaultType: 'textfield',
                defaults: {
                     280
                },
                items: [ {
                        xtype: 'combobox',
                        fieldLabel: 'State',
                        name: 'state',
                        store: store11,
                        valueField: 'abbr',
                        displayField: 'name',
                        typeAhead: true,
                        queryMode: 'local',
                        emptyText: 'Select a state...'
                    }, {
                        xtype: 'datefield',
                        fieldLabel: 'Date of Birth',
                        name: 'dob',
    //                    allowBlank: true,
                        maxValue: new Date(),format:'Y-m-d'
                    }
                ]
            }],
    
           
        });
    
    
    	});
    })();
    

      显示的效果如下:

    排版有点乱哈,以上是正确的代码的结果。

    接下来就说我遇到的问题吧:

    var store11 = function createStore() {
    return Ext.create('Ext.data.Store', {
    autoDestroy: true,
    model: 'State',
    data: states
    });
    };

    这个代码熟悉吧?再仔细看看,和上面的代码有什么区别?看了好久终于知道了,这个比着上面的少了一个“()”,可别小看这个括号啊,就是因为这个store11才会被看作不同的角色,如果添加括号就代表store11是个对象了,理解否?不理解? 好吧,我就把自己的心得记录一下吧,还记得上次写的闭包的日志吧,函数后面加上括号代表这个函数立即执行,这些知道了吧,正确的代码是上面有括号的,如果把括号去点,就代表store11是个函数了,这个时候如果在item中的store元素的值设置为store11的话是不是就会出现类型转换异常啊?^。^,Java用习惯了,这下子明白了吧,好了不多写了,问题明白就行了,还有事情,先记录这么多吧…………

  • 相关阅读:
    线程的资源释放(一)
    iOS开发完整项目
    iOS开发多线程技术方案
    Windows 7 Beta泄漏版存在安全问题 狼人:
    工信部:黑客入侵等是网络安全防护工作的重点 狼人:
    微软下周2将发布13个补丁 修复26个安全漏洞 狼人:
    调查显示互联网14%SSL认证不安全 狼人:
    09年恶意软件放缓 2010年共享最危险 狼人:
    IE曝新安全漏洞 千万网民隐私遭受威胁 狼人:
    安全关注:2009年信息安全八大预测 狼人:
  • 原文地址:https://www.cnblogs.com/andysd/p/3038641.html
Copyright © 2020-2023  润新知