2016-06-28 8 views
0

角度ルートを設定する際に問題が発生しています。角度templateUrlがMVCコントローラにリダイレクトしない

ポイントまでまっすぐに移動すると、定義された私の角度経路は、私のMVCコントローラに衝突することはなく、そのためアクションメソッドにも影響しません。

アクションメソッドは、私のテンプレートを表す部分ビューを返します。

ここに私のルート構成のイメージがあります。ここで

enter image description here

私のコントローラアクションのイメージがあります。

enter image description here

私は何かが欠けています確信しているが、何を見つけ出すように見えることはできません。

+0

コンソールエラー? –

+0

コンソールエラーなし。 – user3295929

+0

@PankajParkar、よく私はスタックのオーバーフローについてさらに見て、あなたの誰かに出くわしました:http://stackoverflow.com/questions/28351124/mvc5-and-angular-js-routing-urls-not-matching locationProviderを使用しないことをお勧めします。これは、MVCルーティングを台無しにして、あなたのアドバイスに従います。 locationProviderを削除するか、falseに設定すると問題が解決されるようです。私はまだこれがどうして起こるのかを調査することです – user3295929

答えて

0

私にとっては、$ locationProvider.html5Modeの設定を削除することが効果的でした。誰かが別のスタックオーバーフローポストで述べたように、ここでMVC5 and Angular.js routing - URLs not matching MVCのlocationProviderを使用してルーティングを台無しにするようです。私はまだこれがどうして起こったのかを調査することです。私が思ったのは、URLの「#」を取り除くことでしたが、それ以上のものがあるようです。

0

この例は、$ routeProviderと$ locationProviderについてよく理解するのに役立ちます。

私が見る唯一の問題は相対リンクであり、このためにテンプレートが正しく読み込まれていないことです。

from the docs regarding HTML5 mode

あなたは(あなたのメインのHTMLファイルの先頭にURLベースを指定する必要がありますいずれかのすべての相対リンク、画像、スクリプトなどを確認してください)か、絶対URL(/で始まる)を使用する必要がありますアプリケーションのルートとは異なることが多いドキュメントの最初の絶対URLを使用して相対URLが絶対URLに解決されるため、どこでも可能です。 あなたの場合、スラッシュ/ in href属性($ location.pathはこれを自動的に行います)を追加することも、経路を設定する際にtemplateUrlを追加することもできます。これにより、example.com/tags/anotherのようなルートが回避され、テンプレートが適切に読み込まれるようになります。

<div> 
    <a href="/">Home</a> | 
    <a href="/another">another</a> | 
    <a href="/tags/1">tags/1</a> 
</div> 
<div ng-view></div> 

そして

app.config(function($locationProvider, $routeProvider) { 
    $locationProvider.html5Mode(true); 
    $routeProvider 
    .when('/', { 
     templateUrl: '/partials/template1.html', 
     controller: 'ctrl1' 
    }) 
    .when('/tags/:tagId', { 
     templateUrl: '/partials/template2.html', 
     controller: 'ctrl2' 
    }) 
    .when('/another', { 
     templateUrl: '/partials/template1.html', 
     controller: 'ctrl1' 
    }) 
    .otherwise({ redirectTo: '/' }); 
}); 

をサーバーからこれを実行する必要がありますChromeを使用している場合:ここで

は作品例です。

関連する問題