骨干事件行为

时间:2017-02-01 05:29:50

标签: javascript ajax backbone.js backbone-events backbone-model

我刚刚开始使用骨干网,而且我遇到了一个非常混乱的墙。

我在做什么:

  1. 创建A类型的模型实例,在初始化期间调用fetch。
  2. 创建一个B类型的模型实例,在初始化期间调用fetch。
  3. 创建一个使用两者数据的视图。
  4. 将两个模型中的同步事件绑定到view.render(),并在两个AJAX调用都返回后创建一个表(渲染将被调用两次,我知道 - 没什么大不了的。)
  5. 我期待的是,当第二个同步事件发生时,表格将使用两者中的数据进行渲染。

    实际发生的事情是同步事件正在触发,但是当视图尝试使用它时,模型数据完全为空(我可以检查model.cid并看到它与我最初创建的模型相同,它只包含绝对没有)。我有记录,以便我可以告诉哪个事件从哪个模型触发,我可以看到渲染被按预期被调用两次。

    我可以在我的页面上添加一个调试按钮,手动调用相同的渲染(一旦完成两个AJAX调用),一切都很好,所以我知道我的AJAX调用最终都成功了,最终导致完全填充模型。

    我做错了什么?我是否从根本上误解了一个事件应该在这里做什么?为什么我的模型会在同步事件后完全变空?

    戴夫

1 个答案:

答案 0 :(得分:-2)

为相当糟糕的问题道歉,充满了缺乏实际代码。我经历了从头开始重新编写所有内容,使其工作,然后逐行检索原始代码,找出它无法正常工作的原因。

我们只是说这之间存在很大差异:

[ 7, 6, 8, 7 ]

和此:

this.listenTo(user, 'sync', this.render("userchange"));

我需要阅读“传递函数”与“运行函数”。

戴夫