0

Weeblyのドラッグ要素&を作成しています。 Weeblyは、各要素をBackbone JSビューで、explained hereとしてラップします。イベントを破棄するか、外部DOMアイテムをバックボーンモデルにリンクする

// My js file. PlatformElement is a Weebly-controlled object exposed to me. 
PlatformElement.extend({ 
    initialize: function() { 
     // Weebly calls this method automatically at element creation time. 
     // This is where I add a new menu item to an external navigation menu. 
    } 
}); 

バックボーンビューはinitialize dとしたとき、私は外部のナビゲーションメニューに新しいDOMノードを追加します。私の問題はここから始まります。私のモデルが破壊されると、私が作成したDOMノードはそのままです。

Weeblyは、ユーザーがWebデザイナーインターフェイスで要素を再構成するたびにビューを破棄/再作成します。モデルの一部ではないので、私の外部メニューノードは破壊されず、JSは手動でメニューノードを削除するdestoryイベントを意識していません。

もちろん、それは私の要素への各変更が別の重複メニューノードを作成することを意味します。

質問

  1. Weeblyのは私に公開し、またはネイティブバックボーン機能は、私は私のモデルが破壊されていることを知らせるために、私には公開されたイベントはありますか?
  2. または、モデルに外部メニューノードを「リンク」する方法があるので、モデルが破棄されたときにメニューノードも破損することはありませんか?

答えて

2

バックボーンは、バックボーンオブジェクト(モデル、ビュー、コレクションなど)に発生したイベントをリッスンする方法を提供します。あなたは、モデルのイベントを破壊することができ聴くには:

const model = new Model({/*...*/}); 

// solution 1 
model.on('destroy',() => console.log('model is destroyed')); 

// soluction 2 
const view = new View({/*...*/}); 
view.listenTo(model, 'destroy',() => console.log('model is destroyed')); 

model.destroy(); // this will trigger two callbacks above 
+1

[ '' .on' VS .listenTo'](https://stackoverflow.com/q/16823746/1218980)私は –

+0

@EmileBergeron単に不思議なことに、 'on'と' listenTo'の使い方は正しいと思われます。どうしましたか? –

+0

@TJはい、しかし 'on'は避けるべきで、私はそれを指摘したいと思いました。 –

関連する問題