これがハッシュバンURLの良い説明ですハッシュバンURL。これは、バットマンがこれを行うのは正常です(ほとんどすべてのjavascriptフレームワークがこれを行います)。「pushstate:true」を有効にすると無効になります(ただし、レガシーブラウザを使用している場合はハッシュバンにフォールバックします)。
batman.jsビューがレンダリングされないことに関して、私は同様の問題に遭遇しました。Chromeコンソールでエラーは発生しませんでしたが、ビューがレンダリングされていませんでした。ビューをアタッチするためのdata-yield属性があることを確認する必要があります。
例えば:
<div id="container" data-yield="main">
</div>
batman.js githubからの抜粋:
/#!/ faq / what-is-artに移動すると、ディスパッチャは{questionID:"what-is-art"}を使用してこのFAQアクションを実行します。また、@ renderを暗黙的に呼び出します。これは、デフォルトで/views/app/faq.htmlでビューを検索します。ビューは、ページのメインコンテンツコンテナ内にレンダリングされます。このコンテナは、レイアウトのHTMLのタグにdata-yield="main"を設定することで指定されます。アクションで@renderfalseを呼び出すことにより、この暗黙のレンダリングを防ぐことができます。
物事のショーアクションへのリンクを表示しようとしていますか?次の場合は、次のようになります。
<ul id="things">
<li data-foreach-thing="Thing.all" data-mixin="animation">
<a data-route="routes.things[thing]" data-bind="thing.id"></a>
</li>
</ul>
これが私が使用しているいくつかのコードの例です(データ属性の順序は重要ではありません):
<div data-foreach-section="sections" data-mixin="animation">
<a data-bind="section.SectionId" data-route="routes.sections[section]"></a>
<p data-bind="section.Name"></p>
</div>