将值传递回“Controller”类中的“View”

时间:2012-05-06 15:25:18

标签: cordova sencha-touch extjs sencha-touch-2

在我的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.
                  });

1 个答案:

答案 0 :(得分:1)

  

1。)在我的代码中,我只能显示来自VIEW的JSON响应,但是如何将它发送到COntroller呢?

为什么要将值从view传回controller

我认为没有任何正当理由这样做。

您可以在此类网络服务的Ext.Msg.alertsuccess上显示控制器中的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);