Mar*_*tta 3 javascript backbone.js
我正在尝试在Backbone.js中为我的路由实现前置过滤器.我在这里找到了以下代码-
var MyRouter = Backbone.Router.extend({
route: function(route, name, callback) {
return Backbone.Router.prototype.route.call(this, route, name, function() {
this.trigger.apply(this, ['beforeroute:' + name].concat(_.toArray(arguments)));
callback.apply(this, arguments);
});
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我不确定接下来我需要做什么.我需要使用我想要的"路由前"逻辑来定义一个函数,但我不明白它将如何被调用.
重写的route函数触发一个名为的事件beforeroute:routename,然后调用原始route函数.所以如果你有这样的路线:
var MyRouter = Backbone.Router.extend({
routes: {
"": "home"
},
// ...
});
Run Code Online (Sandbox Code Playgroud)
然后您将使用以下命令订阅beforeroute事件:
var router = new MyRouter()
router.on("beforeroute:home", function() {
// before route logic here...
alert("Home route is about to get hit ...");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |