如何重置/重启骨干应用程序

时间:2014-05-21 22:08:16

标签: javascript backbone.js

我正在使用backbone.js构建一个小测验游戏

一旦你完成测验,你可以选择重新开始。

我怎样才能做到这一点?我已经尝试过调用初始化函数,以及启动游戏时被触发的第一个函数。这只是返回错误。这两个调用是成功的,但是后续的每个问题的解决功能都失败了。

我想我需要清空我的模型/集合。这是我第一次使用Backbone,我仍然试图了解每一个工作原理。

任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用骨干路由器(不要忘记start):

因此,在您的游戏视图中,您会遇到一个事件,该事件会在单击“再次启动”按钮时触发。此事件将触发一个将用户重定向到新游戏路径的功能。您还可以在路由器中设置一个功能来关闭旧视图。这对avoid zombie views

很重要

e.g。图

//initialize code
//...
events: {
  'click .startAgainButton':'restart'
}

restart: function(e) {
    e.preventDefault();
    window.location.href = '#/new_game';
}
//rest of view code...

e.g。路由器

//router code
routes: {
    "new_game":"reset"
},

trackView: function (next) {
    if (this.current) this.current.close();
    this.current = next;
},

//kill zombie views
close: function () {
  this.undelegateEvents();
  this.$el.off();
  this.$el.children().remove();
},

reset: function() {
    this.trackView(new View());
}