问题标签 [backbone-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4158 浏览

javascript - 将事件绑定到下划线/主干中的动态对象

我试图弄清楚如何在 underscore.js/backbone.js 中未原型化或不是 dom 对象的对象上侦听自定义事件。

例如:

模型看起来大致是这样的:

错误是:

当然,对象上没有绑定是有道理的,但是有人对此有很好的解决方案吗?

非常感谢A

0 投票
2 回答
3863 浏览

javascript - Backbone.js 嵌套视图中的事件

我有一个名为DashboardView实例化多个WidgetViews 的视图。每个小部件都需要有自己的事件绑定。据我所知,当视图被渲染并添加到父视图时,这些绑定会丢失,即:

这样做,.config小部件元素上的点击事件现在丢失了。有没有更好的方法将嵌套视图混合到父视图中,同时确保子视图上的事件处理程序被正确引导?

我在这篇文章中看到了这个问题的一个解决方案。这看起来是对的,但我很好奇是否有更优雅的方法来解决这个问题。

0 投票
2 回答
7717 浏览

backbone.js - 如何找到与点击的项目对应的模型ID?

如何知道我点击的项目的 ID?我的代码如下:

和模板

我需要 id 才能在编辑功能中使用,但不是${id}从模板中获取,我按照这些步骤操作但我没有得到它?如何${id}从模板中获取点击的项目?

0 投票
2 回答
1304 浏览

javascript - 将 Backbone View 插入 DOM 时如何指定方法回调?

将视图插入 DOM 后,我需要立即运行布局脚本。所以...

问题是我必须在几个不同的视图中插入新的小部件,并在几个不同的地方重新调用这个脚本,这不是 DRY。我想知道如何isotope在 View 类中定义。

定义一个事件侦听器来监视附加到“.widgets”并运行脚本是一个好主意吗?是否有一种内置的方式来构建视图,当它们被添加到 DOM 时会很智能?

(就此而言,为从 DOM 中删除视图时定义回调也很有用。)

0 投票
1 回答
296 浏览

jquery - 监控主干视图中的 el 变化?

假设我有一个主干视图并且我定期替换 el 的内容,我将如何对新调整的 el 内容重新运行非事件操作?例如; 假设我已经替换了内容并希望所有链接都使用灯箱脚本。要正常附加脚本,你会在渲染中做这样的事情;

但是在内容替换之后,需要再次运行。鉴于您不一定知道 el 内容何时被替换,您将如何重新运行它?我似乎找不到我可以委派的事件——准备好、加载和更改所有声音,就像它们可以工作一样,但没有一个可以。理想情况下,我想要一些可以放入事件哈希中的东西来调用一个方法,该方法在每次替换后运行这些东西。

0 投票
3 回答
5541 浏览

javascript - 重新渲染后主干视图事件不起作用

我正在拔头发,在重新渲染视图后,我似乎无法让鼠标事件在我的主干视图上工作,除非我做了最荒谬的事情:

我实际上有这个,但决定更新到最新的主干并尝试使用新delegateEvents()功能。

这是我的项目 ID 的结构方式:

发生的情况是 tabcollection 有一个主 tabview 来管理所有选项卡,然后为每个选项卡创建一个新模型/视图,并放置一个侦听器以在加载选项卡时重新呈现 tabview。如果 tabview 被重新渲染,鼠标事件将不再起作用,除非我把那个人为的 jQuery 语句放在那里。

这是 tabview 和渲染(我把它剥离了很多)

谁能想到为什么主干鼠标事件根本不触发,是因为它们不在 DOM 上吗?我认为这是骨干特别有用的地方?...

0 投票
2 回答
509 浏览

javascript - 如何防止backbone.js跨视图子共享事件

我有一个创建列表的主视图。这个视图有一个点击事件来“加载更多的项目”。
我有两个扩展主视图的子视图。
我的问题是,当我单击一个视图“加载更多”按钮时,它会影响另一个视图(如果之前加载)。我知道在初始化另一个视图之前我必须关闭视图,但是由于我的视图正在扩展主视图,因此此方法不起作用(它会关闭主对象,并且其他子视图不会初始化):

我的主视图:

注意 .increase 是增加 api 参数的自定义方法。

子视图:

请注意, .parent 是调用主视图方法的自定义方法。
因此,当我单击视图中的加载更多按钮时,如果已经初始化,它会尝试在从主视图扩展的所有视图上调用 loadMore 方法。

我应该怎么办?

0 投票
1 回答
1464 浏览

backbone.js - backbone.js: unable to trigger custom view from parent view and have child view bind to it

I have a parent backbone view which creates a new backbone view in its render method.

I want to be able to trigger a custom event in appView and have previewDataView bind to it -- is this possible? previewDataView did not receive the event when I tried that. Thoughts?

0 投票
1 回答
1832 浏览

javascript - 主干绑定到动态元素

我们的代码中有一个幻灯片,我想根据图像的数量生成按钮。

我正在遍历每个元素的图像:

并像这样附加事件:

现在,当我单击 li (只是一个小圆圈)时,我想在该数组中渲染一个特定的图像,但我不确定如何使用 Backbone 来解决这个问题。通常我会从按钮上解析 rel 然后相应地加载,但我不确定如何在 Backbone 中访问该信息,或者是否有更好的方法来做到这一点。

目前我有一个自动旋转图像的旋转图像功能:

现在我需要一个 changeImage 函数,但这是我迷路的地方:

0 投票
1 回答
4141 浏览

javascript - Backbone.js - 暂时禁用(事件)视图

TL;DR如何暂时禁用一个视图,以便我可以安全地加载另一个视图,然后安全地关闭加载的视图以返回到原始视图?

我有以下情况:

  1. 用户打开/search加载SearchView
  2. 用户单击按钮执行搜索。
  3. 里面的集合SearchView充满了数据,UI 更新以反映这一点。
  4. 用户单击结果项。
  5. SearchView被禁用(只需要禁用events?)。
  6. ItemView已加载,显示项目详细信息。
  7. 用户单击按钮关闭ItemView
  8. SearchView被重新启用。

实现第 5 点和第 8 点的最佳方法是什么?我正在考虑调用SearchView.unbind()(针对第 5 点)和SearchView.bind()(针对第 8 点)。

奖励:如果解决方案类似于堆栈,那就更好了。即视图A加载可以加载视图C的视图B。当视图C关闭时,视图B被恢复,等等。