Backbone.js – 在路由触发之前/之后调用方法

前端之家收集整理的这篇文章主要介绍了Backbone.js – 在路由触发之前/之后调用方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要在Backbone.js路由器中分别启动路由之前和之后调用一个setup / teardown方法.有谁创造了一个优雅的方式来做到这一点?

解决方法

_.wrap不是一个解决方案,如果你有20个路由,你必须把它们全部包装.

但是你可以用元编程来做到这一点

class Backbone.FlexRouter extends Backbone.Router
  route: (route,name,handler) ->
    super route,->
      @trigger "route:before"
      handler()
      @trigger "route:after"

UPD:我相信JS应该是这样的(但我没有测试它)

var rp = Backbone.Router.prototype
rp.routeWithoutEvents = rp.route
rp.route = function(route,handler){
  var that = this
  this.routeWithoutEvents(route,function(){
    that.trigger("route:before")
    handler()
    that.trigger("route:after")
  })
}

猜你在找的JavaScript相关文章