Sencha Touch 2-无法从控制器获取参考视图 [英] Sencha Touch 2- Unable to get ref view from controller

查看:10
本文介绍了Sencha Touch 2-无法从控制器获取参考视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正试着通过裁判来查看。在控制器中定义的方法内。我收到错误消息,显示

对象[对象对象]没有方法‘getUserForm’。

这是我的视图和控制器,如果有人能帮我,我会很高兴的。

提前谢谢。

用户表单

Ext.define(appName + '.view.user.UserForm', {
    extend  : 'Ext.form.FieldSet',
    alias   : 'widget.userform',
    title   : 'User Form',
    instructions: 'Fill your personel information',
    iconCls : 'icon-form',
    fullscreen: true,
    config : {
        items : [{
            xtype       : 'toolbar',
            docked      : 'top',
            title       : 'Registeration Form',
            iconCls     : 'icon-form'
        }, {
            xtype       : 'textfield',
            label       : 'Name ',
            name        : 'name'            
        }, {
            xtype       : 'textfield',
            label       : 'Surname ',
            name        : 'surname'         
        }, {
            xtype       : 'passwordfield',
            label       : 'Password ',
            name        : 'password'
        }, {
            xtype       : 'toolbar',
            dock        : 'bottom',
            defaults    : {
                xtype   : 'button',
                flex    : 1
            },
            layout      : { pack : 'center' },
            items       : [{
                text    : 'Reset',
                iconCls : 'icon-refresh-32',
                ui      : 'action',
                action  : 'reset'
            }, {
                text    : 'Save',
                ui      : 'action',
                iconCls : 'icon-save-32',
                action  : 'save'
            }]
        }]
    }
});

用户控制器

Ext.define(appName + '.controller.UserController', {
    extend      : 'Ext.app.Controller',
    stores      : [ 'Users' ],
    models      : [ 'User' ],
    views       : [ 'user.UserList', 'user.UserForm' ],
    refs        : [{
        ref     : 'userList',
        selector: 'userlist'
    }, {
        ref     : 'userForm',
        selector: 'userform'
    }],
    init        : function() {
        this.control({
            'userform button[action=save]' : {
                release : this.saveUserForm
            },
            'userform button[action=reset]' : {
                release : this.resetUserForm
            }
        });
    },
    saveUserForm : function(btn) {
//      Ext.Msg.alert('SUCCESS', 'Form is successfully saved.');
        **var form = this.getUserForm();** // ERROR!
        alert(form);
//      Ext.Msg.alert('Form Values', JSON.stringify(form.getValues(), null, 2));
    },
    resetUserForm : function(btn) {
        **var form = this.getUserForm();** // ERROR!
//      var form = btn.up('form');
        form.reset();
    }
});

推荐答案

引用-命名组件查询选择器的集合,使您可以轻松获取对页面上关键组件的引用。

根据http://docs.sencha.com/touch/2-0/#!/api/Ext.ComponentQuery(关于可以在ReFS中使用的选择器类型),可以使用:

检索组件

1)它们的xtype:‘panel’、‘extfield’等。

2)其id:‘#idOfYourComponent’

在您的情况下:

1)用户表单

Ext.define(appName + '.view.user.UserForm', {
    extend  : 'Ext.form.FieldSet',
    xtype   : 'userForm' 
    alias   : 'widget.userform',

用户控制器

Ext.define(appName + '.controller.UserController', {
    extend      : 'Ext.app.Controller',
    stores      : [ 'Users' ],
    models      : [ 'User' ],
    views       : [ 'user.UserList', 'user.UserForm' ],
    refs        : {
        mySuperMegaForm: 'userForm'
    }

2)用户表单

Ext.define(appName + '.view.user.UserForm', {
    extend  : 'Ext.form.FieldSet',
    id   : 'userFormId' 
    alias   : 'widget.userform',

用户控制器

Ext.define(appName + '.controller.UserController', {
    extend      : 'Ext.app.Controller',
    stores      : [ 'Users' ],
    models      : [ 'User' ],
    views       : [ 'user.UserList', 'user.UserForm' ],
    refs        : {
        mySuperMegaForm: '#userFormId'
    }

这篇关于Sencha Touch 2-无法从控制器获取参考视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆