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 级别是多少?