Sencha Touch 2.0 Controller refs 属性不起作用?

Posted

技术标签:

【中文标题】Sencha Touch 2.0 Controller refs 属性不起作用?【英文标题】:Sencha Touch 2.0 Controller refs attribute not working? 【发布时间】:2012-03-08 16:21:04 【问题描述】:

我想知道 Sencha Touch 类“Ext.app.Controller”的“refs”属性。 我看到了一个视频教程,其中构建了一个简单的contactForm。不,我尝试为我的应用程序构建联系表单,但出现错误:'Uncaught TypeError: Object [object Object] has no method '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'有问题,在视频中那个家伙说“getContactForm”方法将因为“contactForm”的“ref”属性而被创建,但事实并非如此。我在这里做错了什么?..感谢您的帮助!

【问题讨论】:

【参考方案1】:

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

refs: 
   contactForm: '#contactForm'

【讨论】:

【参考方案2】:

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

基于documentation,我宁愿这样:

Ext.define('MyFirstApp.controller.Main', 
    extend: 'Ext.app.Controller', 

    views: ['Viewport', 'Home'],

    config: 
        refs: 
            contactForm: '#contactForm'
        
    

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

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

另见:http://docs.sencha.com/touch/2-0/#!/guide/controllers

【讨论】:

【参考方案3】:

看起来好像您的 refs 配置错误。这是一个简单的控制器:

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

mainpanel 是一个 xtype 或者可以是一个 css 选择器,main 会给你getMain(),就像视频中谈到的那样。

【讨论】:

以上是关于Sencha Touch 2.0 Controller refs 属性不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha-Touch2.0 的地图中获取当前位置的标记

Sencha Touch 2.0 支持的最低 Android API 级别是多少?

如何在 Sencha Touch 2.0 中清除 cookie

导航视图上的 Sencha Touch 2 动态按钮

输入字段内的按钮 Sencha Touch 2.0

Sencha Touch 2.0 进度指示器