当我们想通过监听uri的地址的改变来做一些操作时我们可以使用extjs的路由(routes),下面来介绍一下如何使用简单路由和使用路由来传递参数。
1.简单的路由:
首先我们使用下面代码来发送路由
this.redirectTo('startRoute');
然后我们在controller里监听uri的改变来接收路由:
routes : {
'startRoute' : 'startRoute'
},
startRoute : function(){
this.doSomething();
}
接下来介绍一下用路由传递参数:
var num = 12345;//声明一个变量
this.redirectTo('sendNumber/'+num);
routes : {
'sendNumber/:num' : 'sendNumber'
},
sendNumber: function(num){
console.log(num);//12345
}
tips : 需要说明几点:
1.一个controller里只能写一个routes,即使有很多路由需要监听接收那么也要都写在一个routes里,否则会监听不到;
2.路由使用多了会导致uri重复引发错误;
3.当路由触发后,url发生改变后再次触发路由不会产生效果,因为uri没有发生变化。解决方法是,当我们发送完路由,我们再次发送一个空的路由 this.redirectTo(”);,这样可以多次触发同一路由。