1

I can send parameters to RestApi web services. But i can't send parameters dynamically. I need one textfield and button.

Here is my app.js

Ext.application({
    name: 'Hello',
    models: [ 'GreetingModel' ],
    stores: [ 'GreetingStore' ],
    views: [ 'GreetingView' ],
    launch: function() {

        var view = Ext.create('Hello.view.GreetingView', {});

        Ext.create('Hello.store.GreetingStore', {
            autoLoad: true,
            listeners: {
                load: function (self, records) {
                view.setData(records[0].getData());

                }
            }
        });
    }
});

Ext.Loader.setConfig({ disableCaching: false });

My Store

Ext.define('Hello.store.GreetingStore', {
    extend: 'Ext.data.Store',
    config: {
        model: 'Hello.model.GreetingModel',
        proxy: {
            type: 'rest',
            contentType: "application/json",
            dataType: 'jsonp',
            url: 'http://localhost:14551/senchaRegister.svc/request'
        },

        listeners: {
            beforeload: function() {
                var name = 'Sedat';
                this.getProxy().setExtraParam('name', name);
            }
        }
    }
});

My Model

Ext.define('Hello.model.GreetingModel', {
    extend: 'Ext.data.Model',
    config: {
    fields: ['JSONDataResult']
    }
});

and view

Ext.define('Hello.view.GreetingView', {
extend: 'Ext.Panel',
config: {
    fullscreen: true,
    tpl: '<p>Sonuç: {JSONDataResult}</p>',

    items:[

    {
        xtype: 'textfield',
        label:'Name',
        id:'username'
    },

    {
        xtype: 'button',
        name:'send'
        handler: function(){

            /* Stuffs*/
        }
    }
    ]


}

});

I need any advice.

lorenz
  • 4,538
  • 1
  • 27
  • 45

1 Answers1

0

I think you are missing extraParams in your Store declaration.Use this parameter like below.

Ext.define('Hello.store.GreetingStore', {
    extend: 'Ext.data.Store',
    config: {
        model: 'Hello.model.GreetingModel',
        proxy: {
            type: 'rest',
            contentType: "application/json",
            dataType: 'jsonp',
            extraParams: {
               param: 'data'
            },
            url: 'http://localhost:14551/senchaRegister.svc/request'
        },

        listeners: {
            beforeload: function() {
                var name = Ext.getCmp('your_text_field_id').getValue();
                this.getProxy().getExtraParam().param = name;
            }
        }
    }
});

in your view.js ,update handler function like below you need to load the store,on click button.

handler: function(){
        var name = Ext.getCmp('your_text_field_id').getValue();
        Ext.getStore('GreetingStore').getProxy().param = name;
        Ext.getStore('GreetingStore').load();
}
dReAmEr
  • 6,986
  • 7
  • 36
  • 63