【问题标题】:Formfield value from Webservice in Sencha touchSencha touch中Webservice的Formfield值
【发布时间】:2013-08-13 10:56:24
【问题描述】:

在我的 Sencha 触摸应用程序中,我通过从 json 对象动态创建表单项来填充我的容器。

对于文本字段,我使用如下代码:

Ext.getCmp('mytestpanel').add({
                        xtype: response.screens[index].screenItems[i].xtype,
                        id:response.screens[index].screenItems[i].name,
                        label: response.screens[index].screenItems[i].title,
                        name: response.screens[index].screenItems[i].name
                        }
                    });

使用的json:

{
 "screens": [
      {
           "screenname": "Screen 1",
           "screenItems": [
                {"xtype": "textfield", "title": "Temperature"," name": "textfield1", "value":"service211"},
                {"xtype": "button", "title": "Update", "name": "button1"}
           ]
      },
      {
           "screenname": "Screen 2",
           "screenItems": [
                {"xtype": "emailfield", "title": "screen2"," name": "textfield2"},
                {"xtype": "checkboxfield", "title": "label3", "name": "textfield13"},
                {"xtype": "selectfield", "title": "Submit", "name": "button11"}
           ]
      }
 ]

}

我需要使用 json 中所见的 web 服务来更新此文本字段的值

{"xtype": "textfield", "title": "Temperature"," name": "textfield1", "value":"someservice211"}

由于这些值是实时的,我应该怎么做?

【问题讨论】:

  • 基本上你问如何更新温度文本字段值?

标签: sencha-touch real-time


【解决方案1】:

使用存储读取 json 怎么样?您可以 setInterval 到 store.load() 然后在加载回调中添加/编辑动态项目:

proxy: {
    type: 'ajax',
    url: 'http://URL',
    reader: {
        type: 'json',
        rootProperty: 'screens'
    }
},

autoLoad: true,

listeners: {
    initialize: function() {
        var interval = setInterval(function() {
            Ext.StoreMgr.lookup('myStore').load();
        }, 2000);
    },

    load: function(st) {
        var testPanel = Ext.getCmp('mytestpanel');
        Ext.each(st, function(record) {
            var obj = Ext.getCmp(record.get('id'));
            if (obj) {
                if (record.get('value')) obj.setValue(record.get('value'));
            } else {
                testPanel.add({
                    xtype: record.get('xtype'),
                    id: record.get('id'),
                    label: record.get('label'),
                    name: record.get('name'),
                    value: record.get('value')
                });
            }
        }
    }
}

希望对你有帮助-

【讨论】:

  • 抱歉回复晚了。您提供的答案似乎很合适。我会告诉你它的进展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
相关资源
最近更新 更多