Backbone.js 事件转换如何在长颈鹿路由器中工作?
我刚刚发现了解决问题的方法。可以按如下方式触发应用程序事件: routes: { 'childView/:name': 'route:childView' // 'someHashLocation/:andItsParams': 'some:appEvent' }, 路线:{ 'childView/:name':'route:childView' //'someHashLocation/:andItsParams':'some:appEvent' }, 由于通常路由事件是由回调函数处理的,我想知道如何从非Giraffe主干应用程序触发这些路由事件?您看到这种将路由器与应用程序模块分离的方法有什么问题吗 由于通常路由事件由回调函数处理,因此 想知道从一个服务器触发这些路由事件需要什么 非长颈鹿主干应用 任何与路由器相关的内容都可能导致路由事件,例如:Backbone.js 事件转换如何在长颈鹿路由器中工作?,backbone.js,giraffe.js,Backbone.js,Giraffe.js,我刚刚发现了解决问题的方法。可以按如下方式触发应用程序事件: routes: { 'childView/:name': 'route:childView' // 'someHashLocation/:andItsParams': 'some:appEvent' }, 路线:{ 'childView/:name':'route:childView' //'someHashLocation/:andItsParams':'some:appEvent' }, 由于通常路由事件是由回
var app = new Giraffe.App({routes: {'post/:id': 'route:post'}});
// Trigger a route with an app reference
app.router.cause('route:post', 42); // => location changes to #post/42
// => 'route:post' triggered on `app`
Giraffe.Router#cause
类似于Backbone.Events#触发
,如果存在相应的路由,则导航到相应的路由,路由器
触发应用程序上的事件,而不是自身
任何具有应用程序引用的内容都可以侦听路由事件:
// Handle the route from outside the Giraffe app
app.on('route:post', function(id) {...});
// Other `Backbone.Events` instances can listen to the Giraffe app
var myOtherApp = new Backbone.View;
myOtherApp.listenTo(app, 'route:post', function(id) {...});
除了发送事件外,该应用程序还充当了一个方便的事件中心。所有长颈鹿对象都引用了this.app
(如果已经创建了一个),并且支持快捷方式appEvents
绑定
您看到这种将路由器与应用程序模块分离的方法有什么问题吗
(我是作者之一)我们公司和我个人的经验都没有发现这是一个问题,但可以想象这种基于事件的系统无法提供所需的协调水平的情况。我们已经考虑过使用过滤器等功能来改进路由处理,但还没有找到时间。如果你有什么建议,我们很乐意听听 谢谢!与-->一起,我对链接的事件驱动架构有了一些新的见解!我很高兴能帮上忙。