天天看點

sencha Touch controller routes

Ext.define("mvc.controller.testController",{

extend:"Ext.app.Controller",

config:{

routes: {//路由

//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#login

//通過在index.html的後面添加#login即可通路showLogin裡的方法。

//這個可認為是深連結。我們可以将連結的任意部分發送出去,當這個連結被單擊時候頁面會加載到正确的位置。

//而不是應用程式的初始位置。

'login': 'showLogin',

//:id是參數

//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#user/234

//即可把234當做參數傳遞給shouUserById這個函數

'user/:id': 'showUserById',

//包含兩個參數id,format,

//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#products/12/abc

//即可把12和abc當做參數傳遞給showProductInFormat函數

'products/:id/:format': 'showProductInFormat',

//路由進階

'file/:filename': {

action: 'showFile',

conditions: {

':filename': "[0-9a-zA-Z\.]+"

}

}

},

refs:{//可以使用itemId或者選擇器進行查找過濾

conView:"#controllerView",

tabOneApple:"button[action=tabOneApple]",

//查找button中action是tabOneApple的按鈕

infoPanel: {

selector: 'tabpanel panel[name=fish] textfield',

//查找 tabpanel中item的name是fish的這個tab,tab的items中是否含有xtype是textfield的

//如果不含有則根據下面的xtype和autoCreate自動建立textfield元件

xtype: 'textfield',

autoCreate: true

}

},

control:{

tabOneApple: {

tap: 'doTabOneApple'

},

'button[action=tabOneBanana]': {

tap: 'doTabOneBanana'

}

},

},

showLogin:function(){

// this.getConView().addComponent("小蘋果");

// this.getConView().items.getAt(0).add({

// xtype:"textfield",

// label:"ssss"

// })

},

showUserById:function(id){

console.log("id=="+id)

},

showProductInFormat:function(id,format){

console.log("id=="+id+",format=="+format);

},

showFile:function(filename){

console.log(filename)

},

doTabOneApple:function(){

var infoPanel=this.getInfoPanel();

infoPanel.setLabel("hellow")

this.getConView().items.getAt(0).add(infoPanel)

},

doTabOneBanana:function(){

this.getTabOneApple().setText("I like apple!")

}

})