问题标签 [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 投票
2 回答
390 浏览

jquery - 更新集合中的模型

我的问题是如何更新集合中的模型?这就是我正在做的事情。在页面加载时,我获取联系人列表。在一个视图中,我在一个无序列表中列出了这些联系人。每个联系人都是可点击的,这将带您进入编辑表单。对联系人进行更改后,您可以保存该联系人。这将带您进入将更改的模型保存回集合的方法。你会怎么做?在骨干文档中没有更新方法(或者至少我没有看到它)。我创建了一种方法来做到这一点,但我不确定它是否是首选的 Backbone 方式。这里是:

你会认为会有这样的功能:

谢谢您的帮助

0 投票
1 回答
625 浏览

javascript - 绑定到由 collection.create() 创建的模型的错误事件?

我有一个评论集合和一个用于创建新评论的视图。每条评论都会进行一些客户端验证:

评论集合非常简单:

我在NewComment视图中创建评论。此视图可以访问评论集合并将其用于create新评论。但是,Comment模型中的验证失败似乎并没有通过集合冒泡。有没有击球手的方法来做到这一点?

0 投票
1 回答
40593 浏览

javascript - Backbone.js - 使用触发器触发事件​​并传递数据

我正在使用backbone.js 作为MVC 框架编写一个选项卡菜单组件。当用户单击选项卡时,组件将切换选项卡(内部操作),但随后我希望组件的侦听器响应与事件关联的操作。这背后的想法是我将各种点击抽象为特定的动作。例如,每个选项卡的模型是具有以下结构的哈希:

将触发的事件将被称为“动作”,因此侦听器将响应“动作”,但随后将转发特定命令。例如:

侦听器将依次处理事件,如下所示:

}

这可能吗?我无法从文档中收集到这一点。提前感谢您提供的任何见解。

0 投票
2 回答
1245 浏览

javascript - BackboneJS:从视图提交表单时触发表单验证

因此,我开始使用 Backbone.js 来构建我的 javascript 代码并拥有模块化应用程序,但我遇到了一个关于事件的问题。

我想制作一个简单的视图来处理表单并验证它们。将来我想添加所有的 javascript 功能,如实时验证、悬停效果等。

这是我现在拥有的简化代码:

我遇到的问题是提交表单时未调用 validateFields 函数。我也尝试在构造函数上使用它:

现在,最后一个代码有效,但验证函数中的“this”将是 $('#formid') 对象,而不是我的 Form 对象。

0 投票
1 回答
951 浏览

javascript - 骨干事件委托 eventName 问题

我有一个足够简单的事件对象的视图(在咖啡脚本中,因为它很甜)

我的活动不受约束。当我到达未缩小的 0.5.3 Backbone.js 文件中的第 967 行时

当我在 Chrome 中设置断点时,它会以不正确的 jQuery 语法结束:

选择器是正确的,但我不确定为什么在第 963 行有一个附加到我的“点击”字符串,它指示事件类型。该方法在使用下划线绑定之前读取为我的console.log方法,所以这是正确的。

最终结果是我的事件没有被触发。想知道我在这里搞错了什么。

0 投票
2 回答
328 浏览

backbone.js - 每个实例事件绑定的主干

我有一个视图,它为列表中的每个项目创建一个子视图。我们一般称它们为 ListView 和 ListItemView。我在 ListItemView 上附加了如下事件:

我为 ListItemView 生成了模板生成的 html,大致如下所示(将 lb/rb 交换为 {/},以便您可以看到“非法”html):

问题是,当单击任何 [x] 时,所有 ListItemViews 都会触发它们的 removeItem 函数。如果我让它脱离了这个模型的 id,那么我会删除页面上的所有项目。如果我让它离开单击项目的父元素的父元素来获取数据 ID,我会删除每个 ListItemView 实例。有没有办法创建一个只会触发单个 removeItem 的特定于实例的事件?

如果我让 ListView 持有 ListItemView 的单个实例并重新分配 ListItem 模型并为列表中的每个项目呈现它就可以工作。我最终只触发了一个动作(removeItem)。问题是,我必须找到点击目标的父级才能找到 data-id attr。就个人而言,我认为下面的代码片段相当难看,想要更好的方法。

任何人提供的任何帮助将不胜感激。

0 投票
2 回答
13216 浏览

backbone.js - Backbone.js:如何在更改模型集合时强制视图自动刷新

所以我有一个看起来像这样的视图。

我已经实例化了这样的视图......

在其他地方(另一种视图自定义方法)我已经更新了定价视图的集合

这没有看到做任何事情。

所以现在集合中的项目更少了,但新视图永远不会在 DOM 中呈现或刷新。

我该怎么做 1.) 刷新 DOM 中的渲染?2.) 让它自动刷新DOM?我是否必须以某种方式告诉它在集合更改时进行渲染?

0 投票
1 回答
1219 浏览

backbone.js - Backbone.js 嵌套集合,添加事件触发,但返回父模型

我一直在尝试将集合嵌套在模型中。我有一个食谱,一个食谱有成分列表(集合),它有成分(模型)。

我首先尝试了主干关系模型,但随后选择了此处提供的方法主干.js 结构化嵌套视图和模型

当我向集合中添加成分时,会触发添加事件。

但是在我的控制台中,我试图输出添加的成分,我正在返回配方模型。

我的模型看起来像这样

如何让绑定返回刚刚添加到集合中的成分,而不是整个配方模型?

0 投票
1 回答
12176 浏览

javascript - 骨干路由器事件

Backbone.Router在执行路由之前和之后是否存在事件?我的应用程序jQuery.mobile在执行路由之前需要使用并调用 $.mobile.changePage,并且在控制器中可以通过 $.activePage 访问当前显示的页面。控制器操作完成后,我应该触发create文档上的事件以通过 $.mobile 新创建的元素来“增强”。我通过替换来做到这一点loadUrl

可能有一些像这样的内置事件吗?

0 投票
1 回答
3207 浏览

javascript - 如何处理backbone.js中视图之外的对象事件?

正如在主干-todolist 示例中一样,我有一个元素集合。我制作了 2 个视图,一个用于列表,一个用于每个元素。它工作得很好。

但是,由于我需要修改列表的元素,因此在元素视图中,我处理修改事件,使用包含 html 表单的colorbox 插件打开一个弹出窗口。html 是动态创建的并传递给 colorbox 元素。

我使用 colorbox 和骨干形式的附加插件。

现在:弹出窗口不是我视图的子项(在 DOM 中),所以我不知道如何在“按钮提交”操作上触发事件。

这是代码片段(省略了无用的部分):

当弹出窗口打开时,会触发 saveEl 方法(或函数?,哪个术语更正确?)。

我还尝试了不同版本的代码:

在第二种情况下,在创建视图时调用 saveEl 函数(因此对列表的每个元素一次)。

我知道我为弹出窗口创建了一个视图,但有些人说它太复杂了,应该有一个更简单的架构。

事实上,这个问题更笼统:是否可以在不为它们创建视图的情况下处理 $(this.el) 范围之外的 DOM 对象触发的事件?

提前致谢。

- - - - - - - - -更新: - - - - - - -

工作代码的最终版本如下: