问题标签 [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 回答
288 浏览

oop - Backbone:以正确顺序呈现和重新呈现订阅者视图的模式

所以基本上我一直在玩弄这种 pubsub 模式,当父“控制器”视图调用时,子视图会重新渲染(对不起,如果这令人困惑)。如果子视图基于集合或模型的获取(下面未显示),有时它们不会以正确的顺序呈现我也需要它们,即如果 SubView1 是 Subview2 的小导航,我不想要它在 SubView2 下方。

我认为这样一个常见问题必须有一个模式。让我知道这是否没有意义,我会澄清一下。但我正在处理的基本情况如下。

标记:

js:

0 投票
1 回答
354 浏览

javascript - 为什么我的 Backbone 应用程序中多次触发点击事件?

我正在制作一个 Backbone.js 应用程序,它包括一个索引视图和几个基于 id 的子视图。所有的视图都绑定了 mousedown 和 mouseup 事件。但是每次从一个子视图转到索引视图,然后再转到任何一个子视图时,当前子视图中的mousedown和mouseup事件都会再触发一次,也就是说当我点击子视图时,会有几个连续的触发 mousedown 事件之后会触发几个连续的 mouseup 事件。

看了我的代码,终于发现是路由器导致了这个问题。我的部分代码如下:

可以看到,我initialize是在路由器的方法中创建索引集合和视图,但是我在路由器对应的路由函数中创建子视图集合和视图。我尝试将索引集合和视图放在index函数中,索引视图中的单击事件的行为方式与子视图相同。所以我认为这就是为什么 mousedown 和 mouseup 会被触发多次。

但问题是,我必须使用id作为发送到子视图的参数之一。所以我不能在initialize方法中创建子视图。更重要的是,我已经看到别人的项目基于Backbone,其中一些还在相应的路由功能中创建子集合和视图,但他们的应用程序运行完美。所以我不知道我的问题的根源是什么。有人可以给我一些想法吗?

0 投票
1 回答
886 浏览

javascript - Backbone.js:在 Collection 中使用时不会触发模型事件

在这里,我有一个 Backbone.js 模型 - 联系人和一个集合 - 以联系人为模型的联系人。我有两个视图,其中一个使用集合列出所有联系人,第二个使用模型直接显示单个联系人。但是当我直接使用模型时,我可以在与集合一起使用时触发'change'事件,而不会触发'change'事件(甚至模型的'所有'事件)。我是否在这里缺少一些额外的绑定以使其与集合一起使用?

更新 同时使用集合和单个模型实例时,我必须运行 generateUrls() 以根据模型的“id”更新 urlDisplayPicBig 和 urlDisplayPicSmall。

0 投票
1 回答
235 浏览

javascript - 点击事件未触发

我已经环顾了一段时间,但无法找到任何暗示这是什么原因的东西。

我的代码:

上面的代码作为最后一项包含在<body>. HTML如下。

所有必需的元素都存在(据我所知),我没有手动设置el视图的属性。我不知道为什么单击 时事件没有绑定/触发<h3>

编辑如果我不使用路由器并自行创建视图,则不会引发错误并且该功能有效。例如

0 投票
1 回答
854 浏览

javascript - 主干视图监听模型事件

我在主干视图模型通信方面遇到问题,视图应该监听来自模型的事件,所以功能 couponReader 应该从模型中获取数据并在某种确认后添加到购物车。任何帮助表示赞赏

模型类:它循环监听服务器,每当加载数据时从服务器获取数据。

0 投票
1 回答
713 浏览

javascript - 销毁时如何防止收集删除模型?

有没有办法在我的模型被破坏时防止主干.js 收集删除它?

每次发生这种情况时,我都会从集合中收到一个“删除”触发事件

已经尝试传递一些参数但没有

model.destroy({silent: false, remove: false})

0 投票
3 回答
5055 浏览

backbone.js - 骨干集合添加事件触发一次

我有一个 Backbone 集合,当我向它添加一个新模型时,“添加”事件似乎没有像我预期的那样工作。我已经绑定了 2 个视图来监听集合上的添加事件,但似乎只有一个视图收到了事件通知,并且当这种情况发生时,没有 PUT 请求发送到我的服务器。当我删除第二个绑定时,另一个绑定工作并发送 PUT 请求。这是代码片段:

0 投票
1 回答
8563 浏览

backbone.js - Backbone.js 模型的 destroy 方法不会触发成功或错误事件

我开始学习 Backbone.js,我从这个样板开始,并通过从磁盘上的静态文件加载 JSON 数据并将其显示在 html 表中来制作示例。

然后我尝试在一个按钮上绑定一个事件,该按钮应该从集合中删除一个元素,然后从 DOM 中删除。事情正常,点击触发destroy方法,remove事件在集合上触发,但没有任何结果successerror回调destroy

有人有线索吗?

该模型 :

风景 :

0 投票
1 回答
101 浏览

javascript - Backbone:如何将 myView 渲染到 DOM 中

我希望这段代码足以理解问题。
问题如下,

1)我第一次加载 myView,
2)如果我点击div#myId,该功能myAction会按预期触发一次。3) 如果为另一个视图
调用该方法,该函数会被触发两次。 4)然后,如果我重复步骤 3),该功能被触发 3 次,依此类推。removerenderingmyAction
myAction

可能是什么问题呢?

PS:
为每个渲染调用创建的 DOM 是可以的。

0 投票
2 回答
511 浏览

javascript - 获取集合时未调用渲染函数

我已经定义了一个视图绑定到一个集合。

1)当我初始化视图时,会执行一个对集合的获取调用。
2) 如果我查看 get 请求的结果,则可以
3) 我想触发此更改(在 myCollection 中)以调用渲染函数,但它不起作用。

这是我的代码的一部分:


如果我使用

1)

2)