3

DurandalJS を使用した SPA アプリがうまく機能します。リンクがルーティングされ、ビュー モデルがアクティブ化されます。

問題は、サーバー上に実際に存在するページを指すアンカーがあることです。このページを実際にクエリするには、ブラウザーが必要です (これは asp.net MVC ページです)。

Durandal のルーターは、相対 (または実際には同じドメイン) のすべてのリンクにフックしているようで、ルートが見つからない場合は、ルーターの handleInvalidRoute メソッドを呼び出します。

Durandal にこの URL をルーティングしないように指示する方法を、私は一生理解できません。中央/ctrl+クリック機能も維持する必要があります。

ドキュメンテーションは役に立たず、グーグルは何も見つけませんでした。router/SammyJs のコードも調べてみましたが、明らかなものは見当たりませんでした。

この質問は私のものと同じようですが、答えはうまくいきません。私の URL はすべて実際の URL (ハッシュプレフィックスではない) であるため、PushState をオフにすることはできません。

4

2 に答える 2

1

これが役立つかどうかはわかりませんが、location.assign というクリック バインディングを作成しました。PHP を使用しましたが、それでも動作するはずです。以下に例を示します。

ビューで

<a data-bind="click: goToMyLink">Go</a>

ViewModel 内

goToMyLink: function() {
    location.assign('myLink.php'):
}
于 2013-05-17T00:35:38.387 に答える