我有一个路由器,它有多个路由。目前,我正在转义每个参数分别传递给方法本身的方法。
为了安全起见,我需要对URL中传递的所有参数进行转义。
class MyRouter extends Backbone.Router
routes:
"student/:id/:name" : "student"
"teacher/:tid/:tname" : "teacher"
"teacher/:tid/:tname/share" : "teacher_share"
student: (id, name) ->
id = _.escape(id)
name = _.escape(name)
#do stuff
teacher: (tid, tname) ->
tid = _.escape(tid)
tname = _.escape(tname)
#do stuff
teacher_share: (tid, tname) ->
tid = _.escape(tid)
tname = _.escape(tname)
#do stuff
有没有可能一次转义所有路径中的所有参数,这样我就不必在每个相应的方法中显式地转义它们?
1条答案
按热度按时间wb1gzix01#
您可以覆盖
execute
execute
router.execute(callback, args, name)
每当路由匹配并且其相应的回调即将执行时,该方法在路由器内部被调用。从execute返回false以取消当前转换。覆盖该方法以执行路由的自定义解析或 Package ,例如,在将查询字符串传递给路由回调之前解析查询字符串,如下所示: