1

AgularJSにシンプルなアプリがあります。ルートにビューをロードする必要があります

$routeProvider.when('/articles/:url', {
  templateUrl: 'partials/article.html',
  controller: ArticleCtrl
});

NetworkError: 404 Not Found - http://localhost:3000/clanky/partials/article.htmlしかし、ページの再読み込みをクリックし、Angularを再読み込みした後、 partials / article.htmlビューを読み込もうとすると、エラー""で失敗します。「しかし、それが問題の核心ではないということです。

私のルートがあります:

blog.config([
  '$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider.when('/', {
      templateUrl: 'partials/main.html',
      controller: MainCtrl
    });
    $routeProvider.when('/login', {
      templateUrl: 'partials/login.html',
      controller: LoginCtrl
    });
    $routeProvider.when('/backend', {
      templateUrl: 'partials/backend.html',
      controller: BackendCtrl
    });
    $routeProvider.when('/articles/:url', {
      templateUrl: 'partials/article.html',
      controller: ArticleCtrl
    });
    return $routeProvider.otherwise({
      redirectTo: '/'
    });
  }
]);

PSログインなど、他のルートに移動しようとすると、部分的に機能しますが、リロードはまだここにあります。

あなたの答えをありがとう

4

2 に答える 2

0

私はあなたと同じ問題を抱えているようです。

これを処理する方法はわかりませんが、ページがリロードされたためだと思います。

を に設定していない場合html5Mode、は URL にtrueなり#、ページをリロードすると、は へ#の情報を追跡$scopeして API と連携htmlHistoryし、ページを更新してもアプリが適切に動作できるようにします。

しかし、 を に設定するhtml5Modeと、情報を保存する必要trueがなくなり、ページがリロードされると、angular は適切なスコープを見つけることができないため、 を返します。#$scope404

angularjs guide の $location セクションを確認できます。これが発生する理由を説明するセクションがあります。

ページのリロード ナビゲーション

$location サービスでは、URL のみを変更できます。ページをリロードすることはできません。URL を変更してページをリロードしたり、別のページに移動したりする必要がある場合は、下位レベルの API である $window.location.href を使用してください。

これがお役に立てば幸いです。より良い回答が得られた場合は、お知らせください。解決する正しい方法もお待ちしています。

于 2013-07-16T01:18:58.610 に答える
-1

templateUrl をスラッシュで始めます。

templateUrl: '/partials/article.html'

それ以外の

templateUrl: 'partials/article.html'

于 2013-09-12T08:52:05.923 に答える