Model view controller Sencha Touch 2.0控制器参考属性不工作?

Model view controller Sencha Touch 2.0控制器参考属性不工作?,model-view-controller,sencha-touch,sencha-touch-2,Model View Controller,Sencha Touch,Sencha Touch 2,我想知道Sencha Touch类“Ext.app.Controller”的“refs”属性。 我看了一个视频教程,其中构建了一个简单的contactForm。否我已尝试为我的应用程序构建联系人表单,但出现错误:“未捕获类型错误:对象[Object Object]没有方法“getContactForm” 这是我的控制器 Ext.define('MyFirstApp.controller.Main', { extend: 'Ext.app.Controller', views: ['Viewpo

我想知道Sencha Touch类“Ext.app.Controller”的“refs”属性。 我看了一个视频教程,其中构建了一个简单的contactForm。否我已尝试为我的应用程序构建联系人表单,但出现错误:“未捕获类型错误:对象[Object Object]没有方法“getContactForm”

这是我的控制器

Ext.define('MyFirstApp.controller.Main', {
extend: 'Ext.app.Controller', 
views: ['Viewport', 'Home'],

refs: [
     {
         ref: 'contactForm',
         selector: '#contactForm'
     }
],

init: function() {
    this.control({
        'button[action=submitContact]': {
            tap: 'submitContactForm'
        }
    });
},

submitContactForm: function() {
    var form = this.getContactForm();
    form.submit({
        url: 'contact.php'
    });
}
}))


我猜“refs”有问题,在视频中,guy说“getContactForm”方法将被创建,因为“contactForm”的“ref”属性,但它没有。我做错了什么?谢谢你的帮助

看起来您可能配置了错误的参考。下面是一个简单的控制器:

Ext.define('App.controller.Main', {
  extend: 'Ext.app.Controller',
  config: {
    refs: {
      main: 'mainpanel'
    }
  }
});

mainpanel
是一个
xtype
或者可以是一个css选择器,
main
将为您提供
getMain()
,就像视频中讨论的那样。

我同意jeremygerrits,我不能确定这是定义ref的正确语法

基于这一点,我宁愿这样做:

Ext.define('MyFirstApp.controller.Main'{
扩展:“Ext.app.Controller”,
视图:[“视口”、“主视图”],
配置:{
参考文献:{
contactForm:“#contactForm”
}
}
init:function(){
这是我的控制({
'按钮[action=submitContact]':{
点击:“submitContactForm”
}
});
},
submitContactForm:函数(){
var form=this.getContactForm();
提交表格({
url:'contact.php'
});
}
});

另请参见:

refs属性属性已从Sencha Touch 2.0开发者预览版更改为beta/最终版。所以,您所写的对于dev预览是正确的,但目前它只是名称-值对。对于您的情况:

refs: {
   contactForm: '#contactForm'
}