[英]Sencha event handling and view manipulation
因此,我试图围绕Sencha Touch中使用的MVC设计模式进行研究。 我有主见
//-- views/Main.js
Ext.define('PlanningTool.view.Main', {
extend: 'Ext.Container',
xtype: 'main',
config: {
layout:'vbox',
items:[
{
html:'<p><span class="title-text">Door Weight Estimator & Parts Calculator</span><img class="logo" src="resources/images/logo.png" /></p>',
cls:'title'
},
{
xtype:'overview' //-- views/Overview.js
},
{
xtype:'action' //-- views/action.js
},
{
xtype:'breadcrumb' //-- views/breadcrumb.js
}]
}
});
所以让我们说在views/Overview.js
内部:
//-- views/Overview.js
Ext.define('PlanningTool.view.Overview', {
extend: 'Ext.Panel',
xtype: 'overview',
config: {
cls:'overview',
flex:3,
items: [
{
xtype:'button',
text:'Start Estimator',
ui:'action',
cls:'start-button'
}]
}
});
基本上,当按下开始按钮时,我想更新breadcrumb
视图中的一些文本。
我来自appcelerator背景,可以通过向click
按钮中添加一个click
事件处理程序来触发自定义事件并在面包屑内部进行操作,我会监听自定义事件并继续执行我需要做的任何操作。
我只是想以正确的方式进行操作,然后再开始寻找黑客工作
我在这里遵循的过程是:
像这样的控制器:
Ext.define('MyApp.controller.BreadcrumbController', {
extend: 'Ext.app.Controller',
refs: [
{
ref: 'breadcrumbs',
selector: '#breadcrumbs'
}
],
init: function(application) {
this.control({
"#start-button": {
click: this.onStartClicked
}
});
},
onStartClicked: function(button, e, eOpts) {
var bc = this.getBreadcrumbs();
// do whatever to the bc object to update, etc...
}
});
请注意,要使其正常工作,您必须为组件提供ID。 例如,在创建面包屑时,您可以执行以下操作:
{
xtype:'overview',
id: 'overview'
},
{
xtype:'action',
id: 'start-button'
}{
xtype:'breadcrumb',
id: 'breadcrumbs'
}
那你应该很好走!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.