Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js全球活动_Backbone.js - Fatal编程技术网

Backbone.js全球活动

Backbone.js全球活动,backbone.js,Backbone.js,一个关于主干中事件的快速问题-是否有任何方法来定义一组全局事件,这些事件可以在不同的视图中重复使用 例如,假设我在页面上呈现了几个视图。每个视图都有一个按钮,用于展开菜单。还有其他几个通用元素和事件。在不将此事件逻辑放入每个视图的情况下,是否有一种方法可以让每个视图继承或从全局事件定义中提取这些事件?通过在一个地方定义这些通用事件,它当然可以节省时间,并且是一个更干净的解决方案 我见过一些术语,如事件聚合器和工厂模式,但不确定最佳方法(或者它们是否能实现我所追求的目标)。您基本上是在描述事件聚合

一个关于主干中事件的快速问题-是否有任何方法来定义一组全局事件,这些事件可以在不同的视图中重复使用

例如,假设我在页面上呈现了几个视图。每个视图都有一个按钮,用于展开菜单。还有其他几个通用元素和事件。在不将此事件逻辑放入每个视图的情况下,是否有一种方法可以让每个视图继承或从全局事件定义中提取这些事件?通过在一个地方定义这些通用事件,它当然可以节省时间,并且是一个更干净的解决方案


我见过一些术语,如事件聚合器和工厂模式,但不确定最佳方法(或者它们是否能实现我所追求的目标)。

您基本上是在描述事件聚合器或调度程序,是的。我有几篇文章介绍如何构建和使用主干网:


vent = _.extend({}, Backbone.Events);

网络上还有很多文章介绍主干网和其他公共/子图书馆

在主干网中执行此操作非常简单:


vent = _.extend({}, Backbone.Events);
现在,您有了一个
vent
对象,可以在应用程序的所有视图和其他对象中用作事件聚合器


vent.on("some:event", function(){
  console.log("some event was fired");
});

vent.trigger("some:event");

我看到了你关于它的优秀帖子,认为这是最优雅的解决方案(重访的更是如此)!我关注了你的文章,它的效果很好——顺便说一句,这篇文章很棒。但是,这仍然意味着我需要在每个视图中指定事件组(这只是触发所需事件)。由于这些视图组中的每一组始终执行相同的任务(例如添加或编辑按钮),是否有任何方法进一步简化视图?仅供参考,您的lostechies.com域似乎自动重定向到https,但它试图通过http加载GitHub代码段并被阻止。