我可以向RestApi web服务发送参数。但我不能动态发送参数。我需要一个文本框和按钮。
这是我的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 });我的商店
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);
}
}
}
});我的模型
Ext.define('Hello.model.GreetingModel', {
extend: 'Ext.data.Model',
config: {
fields: ['JSONDataResult']
}
});和视图
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*/
}
}
]
}});
我需要任何建议。
发布于 2014-12-03 14:05:40
我认为您在Store declaration.Use中缺少了这个参数,如下所示。
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;
}
}
}
});在您的view.js中,像下面这样更新处理程序函数,您需要加载存储,点击按钮。
handler: function(){
var name = Ext.getCmp('your_text_field_id').getValue();
Ext.getStore('GreetingStore').getProxy().param = name;
Ext.getStore('GreetingStore').load();
}https://stackoverflow.com/questions/27272193
复制相似问题