从路由器中删除骨干视图

时间:2013-03-11 02:28:30

标签: backbone.js backbone-views

如何从路由器中删除骨干视图?我正在尝试运行检查,如果存在某个视图,请将其删除。我无法弄清楚实现这一目标的语法。

我试过了:

if(typeof mysite.city != "undefined")
 {
  console.log(mysite.city.View.prototype.__proto__.remove);

  //Calling this remove function throws the error
  mysite.city.View.prototype.__proto__.remove();
 }

但是我得到了一些未被捕获的异常错误,因为强制页面重新加载,我无法完全读取。我的console.log输出:function(){this。$ el.remove(); return this}我只是不知道如何执行它。

1 个答案:

答案 0 :(得分:0)

为什么不直接致电mysite.city.remove()?我想你出于某种奇怪的原因不能这样做(比如:你确实覆盖了remove函数并丢失了原来的功能;如果是这样的话,为什么你要覆盖这个方法,如果你现在需要调用它? )。如果您必须从Backbone的remove调用原始View方法,您可以尝试这样做:

View.prototype.remove.call(mysite.city);

这会将remove函数的上下文设置为对象mysite.city。否则,当您按照调用它的方式执行remove函数时,this将是未定义的。