2

我是 Sencha 2 的菜鸟,我正在尝试找到一种在单击按钮时呈现新视图的方法。具体来说,我有这个视图叫做 Home

Ext.define("Blog.view.Home", {
  extend:'Ext.Panel',
  xtype:'homepanel',


  config:{
    iconCls:"home",
    title:"Home",
    items:[
      {
        defaults:{
          iconMask:true
        },
        xtype:'toolbar',
        title:'Recent Blogs',
        docked:'top',
        items:[
          {
            id:'newBlog',
            xtype:'button',
            iconCls:'add',
            handler:function () {
              //What do I do here?
            }
          }
        ]
      },

      {
        html:"Recent Blogs"
      }
    ]
  }
});

我希望该按钮在单击时呈现新视图。我只是不确定我会怎么做这样的事情。有人可以给我一些指导吗?这是最好的方法吗?我应该把它移到我的控制器上吗?如果是,我应该听什么事件?

4

2 回答 2

5

我这样做的方式(我也在学习)是定义我的按钮的属性“动作”,例如:

{
  xtype: 'button'
  action: 'doSomething',
}

并在我的控制器的控制配置中处理事件:

control: {
  'button[action=doSomething]' : {
     tap: function() {
       getMainView().push(...);
     }
 }

在处理程序中,如果您使用NavigationView或直接向ViewPort添加新视图,则可以推送新视图。

希望能帮助到你。

于 2012-04-06T01:53:59.503 回答
4

在 Sencha Touch 2(遵循 MVC 模式)中执行此操作的最佳实践是定义对按钮的引用并在控制器中将控制功能粘贴到它。例如:

refs:{
button_which_renders_a_new_view: '#newBlog' //create a reference to your button

control: {
button_which_renders_a_new_view: 'create_a_new_view'
}

create_a_new_view: {
// do whatever you want here
}

有关更多详细信息,让我们更深入地了解一下:http ://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller

于 2012-04-06T02:16:37.963 回答