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!")
}
})