在我的VIew中,我添加了一个按钮,当我点击它时,会调用Controller类。 View(文本字段值)中的值将通过Web服务的URL发送。然后服务器将返回如下所示的JSON字符串;
{ “值”: “SUCCESS”}
现在,我需要将此JSON字符串发送回视图,视图将根据JSON响应提醒用户。如果JSON返回SUCCESS,则会显示Success警报,如果JSON返回FAIL,则会显示Fail警报。
1。)在我的代码中,我只能显示来自VIEW的JSON响应,但是如何将它发送到COntroller呢? (var text = response.responseText;
显示JSON响应)
2.。)我怎么能将字符串与视图分开,只从JSON响应中获取SUCCESS或FAIL字符串?
按钮实施,来自视图类
xtype:'button',
id:'when_button_click',
text:'Send',
ui:'confirm',
COntroller CLass
Ext.define('myapp.controller.testcont',{
extend: "Ext.app.Controller",
config: {
refs: {
newNoteBtn: "#when_button_click"
},
control: {
newNoteBtn: {
tap: "onNewNote"
}
}
},
onNewNote: function () {
var values = Ext.getCmp('form').getValues();
console.log("inside onNewNote function");
Ext.Ajax.request({
url: 'http://call.com/the_webservice',
params : values,
failure: function (response) {
var text = response.responseText;
console.log("fail");
}, success: function (response) {
var text = response.responseText;
console.log("success");
}
});
}
// init and launch functions omitted.
});
答案 0 :(得分:1)
1。)在我的代码中,我只能显示来自VIEW的JSON响应,但是如何将它发送到COntroller呢?
为什么要将值从view
传回controller
?
我认为没有任何正当理由这样做。
您可以在此类网络服务的Ext.Msg.alert
和success
上显示控制器中的failure
,
.....
.....
url: 'http://call.com/the_webservice',
params : values,
failure: function (response) {
var text = response.responseText;
Ext.Msg.alert('Error','Error while executing Web Service');
},
success: function (response) {
var text = response.responseText;
Ext.Msg.alert('Success','Web Service code successfully executed');
},
.....
.....
2)我怎么能将字符串从视图中分离出来,只得到了 JSON响应中的SUCCESS或FAIL字符串?
修改强>
做这样的事情..
var result = Ext.decode(response.responseText);
// result.value = SUCCESS or FAIL
Ext.Msg.alert('Message',result.value);