煎茶触摸2.0和navigation.View - MVC

问题描述:

我想切换视图的一个按钮,也绝对在煎茶文档中的一个MVC上下文中没有这样的例子,虽然他们建议开发者使用他们的MVC架构的构建。我猜是因为Touch 2.0相当新颖。煎茶触摸2.0和navigation.View - MVC

http://docs.sencha.com/touch/2-0/#!/api

一下就行分量视频也即将navigation.View,但由于该表成分时,他们没有说明如何切换视图的一个按钮。

视频:Intro to List Component

这是代码我迄今为止:

uddannelser.js(初视图)

Ext.define("VUCFyn.view.uddannelser", { 
extend: "Ext.navigation.View", 
xtype: "uddannelser", 
requires: [ 
    "VUCFyn.view.avu" 
], 

config: { 
    title: "Uddannelser", 
    cls: "uddannelser", 
    items: [ 
     { 
      title: "Uddannelser", 
      xtype: "container", 
      margin: 20, 
      layout: "vbox", 
      items: [ 
       { 
        xtype: "button", 
        text: "AVU", 
        width: 100 
       } 
      ] 
     } 
    ] 
}}); 

avu.js(uddannelser的子视图)

Ext.define("VUCFyn.view.avu", { 
extend: "Ext.Panel", 
xtype: "avu", 

config: { 
    title: "AVU", 
    cls: "avu", 
    scrollable: true, 
    items: [ 
     { 
      xtype: "label", 
      html: [ 
       "<p>Almen Voksenuddannelse - avu - er et tilbud om uddannelse til alle over 18 år. Du kan tage avu-fagene et ad gangen eller i en kombination med flere fag. Du kan også kombinere avu-fagene med andre enkeltfag på FVU og/eller hf.</p>", 
       "<h5>AVU omfatter kernefagene:</h5>", 
      ].join("") 
     } 
    ] 
}}); 

Main.js(控制器)

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

config: { 
    refs: { 
     uddannelser: "uddannelser" 
    }, 
    control: { 
     "uddannelser": { 
      tap: "showDetail" 
     } 
    } 
}, 

showDetail: function() { 
    this.getUddannelser().push({ 
     xtype: "avu" 
    }); 
}, 

init: function() { 

}}); 

请,如果有人能告诉我如何做到这一点,根据上面的代码(或类似的),将是伟大的。

BTW:在这个线程的答案:Sencha Touch 2 MVC - how to switch views with button没有为我工作。 (虽然没有错误)我认为它适用于Sencha Touch 1.1,并且很多东西在2.0中已经发生了明显变化

+0

查看Sencha Docs的这个简单的NavigationView示例.. http://docs.sencha.com/touch/2-0/#!/ guide/navigation_view(尽管不是MVC格式,这是你可能想要的) – 2012-04-27 10:16:01

嗨我想你只需要修复控制器,它会工作,请尝试以下并让我知道如何你继续。

config: { 
refs: { 
    uddannelser: "uddannelser", 
    uddannelserButton: "uddanelser button" 
}, 
control: { 
    "uddannelserButton": { 
     tap: "showDetail" 
    } 
} 

},

因此,所有我做的是在你的uddanelser视图中添加的按钮选择和连接点击收听到。祝你好运!

你想监听点击事件的navigationview你给的uddannelser cls?你的设置有几个问题。

首先,它并不像你所使用成分查询正确的控制器,检查上述文件:http://docs.sencha.com/touch/2.4/apidocs/#!/api/Ext.ComponentQuery

取决于你有多少这些组件的视图希望控制器来管理,你可以或者给它一个id并通过"#id"搜索组件,或者您可以使用xtype和一个配置选项,如"navigationview[cls=uddannelser]"

其次,如果您想倾听该组件上的点按事件,您不得不倾听上的点按事件并转播活动,您不能在navigationview上收听点击活动。不过,我怀疑你实际上是试图在button上试听点击事件,在这种情况下,在你的控制器中创建两个参考,一个用于navigationview,另一个用于button,在button上监听点击事件并将面板打开像你现在这样的navigationview