Buf*_*ion 6 extjs sencha-touch
我试图围绕Sencha Touch的MVC框架,但我找到了几种不同的方法.在这里找到的一种方法是,在SenchaCon 2010上有一种构建Sencha Touch应用程序的方法.它有一个由Sencha Touch员工增加的重量,但它已经有几个月了.在Sencha Touch MVC的其他最近的帖子中,他们有教程(例如这里,以及Manning的MEAP Sencha In Action by Jay Garcia),它们似乎依赖于视图中的Ext.Dispatch来调用特定的控制器方法,传递额外的控制器的元素,使视图控制器感知.
我的问题是,这被认为是构建Sench Touch MVC应用程序的最佳实践?
我有类似的问题.Sencha为您的视图组件实例自动化了大量的getter创建.这很令人困惑.
我采用了Sencha Touch 2.0并将完整的MVC脚手架应用程序作为示例.我的基础是ExtJS 4.0 MVC架构.这将与Sencha Touch 2.0开发人员预览版开箱即用,可为您节省大量时间.
https://github.com/FrancisShanahan/SenchaTouch2MVCHelloworld
为了回答您的具体问题,最新的ExtJS 4.0 MVC架构为控制器的init事件中的视图组件实例设置了侦听器.以下是已经链接的github项目的示例:
Ext.define('HelloWorld.controller.Home', {
extend: 'Ext.app.Controller',
views: ['Home', 'SimpleList'],
.. etc...
init: function() {
// Start listening for events on views
this.control({
// example of listening to *all* button taps
'button': { 'tap': function () {
console.log('Every button says Hello world');
}
...
Run Code Online (Sandbox Code Playgroud)
让我知道它是否有帮助,问候,-fs
我建议让你的控制器具有视图感知能力。当控制器收到调度事件时,您应该看到类似于以下内容的内容:
this.controllerViewOne = this.controllerViewOne
|| this.render({
xtype: 'panel',
listeners: {
onMajorUIAction : function(params){
Ext.Dispatch({
controller : 'ProperController',
action : 'ProperAction',
historyUrl : 'ProperHistoryUrl',
params : params
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
这样做的另一个好处是,每个控制器视图的所有“主”侦听器都位于一个空间中。这也意味着为其他控制器重用视图变得更加容易。
您的视图都应该具有侦听器,帮助抽象各个组件及其事件/侦听器的复杂性。
我使用 UI 管理器进行全局 UI 更改,例如隐藏/显示主工具栏或显示后退按钮。
| 归档时间: |
|
| 查看次数: |
3101 次 |
| 最近记录: |