2012-04-26 65 views
0

我想切換視圖的一個按鈕,也絕對在煎茶文檔中的一個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

回答

0

嗨我想你只需要修復控制器,它會工作,請嘗試以下並讓我知道如何你繼續。

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

},

因此,所有我做的是在你的uddanelser視圖中添加的按鈕選擇和連接點擊收聽到。祝你好運!

0

你想監聽點擊事件的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