0

ルーターからバックボーン ビューを削除するにはどうすればよいですか? 特定のビューが存在する場合はそれを削除するというチェックを実行しようとしています。これを実現するための構文がわかりません。

私が試してみました:

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} それを実行する方法がわかりません。

4

1 に答える 1

0

直接電話してみませんmysite.city.remove()か?奇妙な理由でそれを行うことができないと思います(たとえば、関数をオーバーライドしremoveて元の機能を失いました。その場合、メソッドを呼び出す必要があるのに、なぜメソッドをオーバーライドしたのですか?)。Backboneのから元のメソッドを呼び出す必要がある場合は、次のことを試すことができます。removeView

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

removeこれにより、関数のコンテキストがオブジェクトに設定されますmysite.city。そうしないと、remove関数を呼び出した方法で実行したときに、this未定義になります。

于 2013-03-11T02:53:08.547 に答える