zoukankan      html  css  js  c++  java
  • Sencha Touch学习使用心得 Unit 2

    继续我们的征途......

    Chapter 1:创建View

        创建一个View,遵循app.js配置的命名空间,extend相当于继承,继承在Ext.form.Panel下(SenchaTouch是基于Extjs的),config就是配置页面组件了,比较通俗易懂了,重点在控制器如何操作视图......

    Ext.define('ST.view.query', {       //创建视图
        extend: 'Ext.form.Panel',//继承在Ext.form.Panel下
        config: {
            tabBar: {
                ui: "neutral",
                layout: {
                    pack: "center"
                }
            },
            fullscreen: true,
            id: "queryForm",
            items: [
            {
                xtype: 'titlebar',
                docked: 'top',
                title: '查询页'
            },
            { xtype: "spacer", height: 30 },
            {
                xtype: "fieldset",
                title: " ",
                instructions: "Please enter your info.",
                defaults: {
                    labelWidth: '35%'
                },
                items: [{
                                xtype: 'textfield',
                                id: "login_phonenum",
                                placeHolder: "请输入手机号",
                                label: '手机号'
                            },
                            {
                                xtype: 'textfield',
                                border: 1,
                                id: "login_appleid",
                                placeHolder: "请输入AppleID",
                                label: 'AppleID'
                            }
    ]
            },
            { xtype: "spacer", height: "4px" }, {
                xtype: 'button',
                itemId: 'btnQuery',
                text: '查询'
            },
                        {
                            xtype: 'toolbar',
                            docked: 'bottom',
                            items: [{
                                xtype: 'spacer'
                            }
                            ]
    }]
        }
    });

    Chapter 2:创建Controller

        要知道在控制器中有三个流程,取到页面组件,页面组件触发事件,事件执行逻辑函数.

        创建方法都一样,继承在Ext.app.Controller下,接下来配置config,配置refs和control.

        refs 取到组件:例:QueryForm: "#queryForm",通过ID取整个View,

                 btnQuery: "#queryForm button[itemId=btnQuery]",取View中ID为btnQuery的Button

        View被赋值给QueryForm,Button被赋值给btnQuery(Button为页面的查询按钮)等

        备注:在函数中,通过Ext.getCmp(id)来取到组件进行操作.

        control 触发事件调用函数:例:btnQuery触发tap事件而调用onBtnQueryTap这个函数

                      QueryForm触发initialize事件(initialize为页面加载事件,只有页面加载触发,其他动作皆触发tap).

        onBtnQueryTap和fnQuery皆为逻辑函数,不用深究,按需向其中加入逻辑代码,如JS前台验证,后台数据验证等,成功后最终调用跳转页面函数,跳转另一个View.逻辑代码都不难,主要是了解JS的MVC如何工作的,

        最后执行代码,看成果!!!

    Ext.define('ST.controller.query', {
        extend: 'Ext.app.Controller',
        config: {
            refs: {
                QueryForm: "#queryForm",
                btnQuery: "#queryForm button[itemId=btnQuery]"
            },
            control: {
             QueryForm: {
                    initialize: "onInitialize"
                },
                btnQuery: {
                    tap: "onBtnQueryTap"
                }
            }
        },
        onInitialize: function() {
    
    },
            //获取页面参数函数
            onBtnQueryTap: function() {
            var QueryForm = this.getQueryForm();
            var itcode = QueryForm.down("#login_itcode").getValue();
            var phonenum = QueryForm.down("#login_phonenum").getValue();
            var appid = QueryForm.down("#login_appleid").getValue();
            
            this.fnQuery(itcode, phonenum, appid);
        },
        //参数验证函数
        fnQuery: function(itcode, phonenum, appid) {

    this.setCard("querylist", "ST.view.QueryList"); }, //跳转页面函数------id为页面id(getCmp()可以通过ID找到页面)-----createCard为view创建地址 setCard: function(id, createCard) { var nextCard = Ext.getCmp(id) var card = null; if (typeof (nextCard) == 'undefined') { card = Ext.create(createCard); } else { card = nextCard; } Ext.Viewport.animateActiveItem(card, { type: 'slide', direction: 'left' }); } });

        页面展示:

    请期待下文......

  • 相关阅读:
    Linux设备驱动之Ioctl控制
    虚拟内存与物理内存的区别
    怎么远程控制他人电脑
    二维数组和指针
    二维数组和指针(C语言)
    帧率、码流与分辨率相关知识
    深入理解FIFO
    安装lsb_release
    Linux初学之vmware Workstation 网络连接三种模式
    RTSP协议学习笔记
  • 原文地址:https://www.cnblogs.com/gkjbest/p/3467372.html
Copyright © 2011-2022 走看看