如何在点击时运行事件加载?

时间:2013-08-28 14:10:14

标签: javascript extjs extjs4

我正在尝试处理将数据传输到服务器。

我的问题:

Ext.onReady(function(){

Ext.define('Person', {
        extend: 'Ext.data.Model',
        idProperty: 'PersonID',
        fields: [{
            name: 'PersonID',
            type: 'int'
        }, .......],
        proxy: {
                   type: 'ajax',
                   api: {
                            read: '1.php?id=90',
                            create: 'create.php',
                            update: 'upd.php',
                            destroy: 'delete.php'
                       }
            }
    });
    Person.load(1, {
        //callback который будет выполнен когда запрос пройдет....
           callback: function(p, operation){

               //p -это текущий объект
alert(p.get('Name')) 

console.log(p.get('PersonID'));   //1 
console.log(p.get('Salary'))    //300 

//document.getElementsByTagName('p')[0].innerHTML='<input type="button" value="click" onclick="function(){p.load()}">'
//Uncaught ReferenceError: p is not defined ?
//Uncaught SyntaxError: Unexpected token ( 

            }
          });

person=new Person;

以上代码有效。 如何在按钮点击时运行事件load()? 我希望你能帮助我 感谢。

1 个答案:

答案 0 :(得分:3)

你的意思是点击了按钮 -​​ &gt;加载人

HTML

<div id="btn">Button</div>

的Javascript

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name'],
    proxy: {
        type: 'ajax',
        api: {
            read: '/someurl'
        },
        reader: {
            type: 'json',
            root: 'data',
            successProperty: 'success',
            totalProperty: 'total'
        }
    }
});

Ext.onReady(function(){
    document.getElementById('btn').addEventListener('click', function(){
        Person.load(1);
    })
});