2

私はマリオネットでバックボーンを使用していますが、異なるルート パラメータで 2 回起動しているように見える厄介なルートが 1 つあります。戻るをクリックすると、元のページではなく、ルートの最初の発火に戻ります。Backbone Debugger を使用すると、6 つの異なるルーターがあり、そのうちの 1 つ (強調表示) だけが適切なルートを持っていることがわかります。したがって、インスタンスは 1 つだけです。

ここに画像の説明を入力

ルートはプレーンな古いリンクによってトリガーされています。私はnavigate()を使用していません。実際のリンク HTML は次のとおりです。

<a href="#device/3/hash/84855d0624dbeb7957cad7d09f7faca78166f033ab71e53aa6199f285d6d903f/incident/8IFVA" class="btn btn-actions action-details">
    <span></span> &nbsp;App
</a>

そのリンクをクリックすると、ルートが 2 つの異なる署名でトリガーされていることがわかります。

ここに画像の説明を入力

ここに画像の説明を入力

バックボーン ルートがどのように機能するか、ルート定義がインシデント ID の有無にかかわらず一致する理由を誤解しているように感じます。これが面白いことです。そのリンクを取得してブラウザーに貼り付けるだけで、ルートは 1 回だけトリガーされます。

4

1 に答える 1

2

通常、ルートまたはイベントが複数回発生する場合は、通常、前後に移動するときにビューが適切に破棄されていないことを意味します。

手書きのナビゲーションを行っていないことは確かなので、特に、手動で URL にアクセスしたときにこのトリガーが 1 回しか表示されない場合は、これが当てはまります。

ルーターを見たり、コードを表示したりしないと、信頼できるソリューションを提供することは困難です。その特定のルート ハンドラーにブレークポイントを設定し始め、それがトリガーされている場所のコール スタックを確認します。

于 2013-10-22T19:23:22.713 に答える