2

Angular.js ルーティングの動作を理解するのが難しい場合があります

これが私のコードです

私のapp.js:

'use strict';

var app = angular.module('myApp', []).
  config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider.when('/game/room', {templateUrl: 'roomGame', controller: roomCtrl});
    $routeProvider.otherwise({redirectTo: '/game/room'});
    $locationProvider.html5Mode(true);
  }]);

ルート サーバー側を定義する index.js:

app.get('/game', function (req, res)
{
  console.log("we are in /game");
  res.render("game/index", {
      user: req.session
  });
});
app.get('/game/roomGame', function (req, res)
{
  console.log("we are in /game/roomGame");
  res.render("game/roomGame";
});

index.jade:

div(ng-controller="indexCtrl")
    a(href='/') Quitter

    div(ng-view)

もう 1 つのファイル roomGame.jade がありますが、ソース コードを表示することは重要ではありません。

ブラウザを開き、次のように入力します: localhost:3000/game.

予想どおり、私は localhost:3000/game/room にリダイレクトされ、予想されるビューが表示されます。

しかし、次のように入力すると、localhost:3000/game/room または localhost:3000/game/foo と入力すると、「cannot GET /game/xxx」と表示されます。

/game にリダイレクトしてから、/game/room にリダイレクトしたいです。どのように可能ですか?

4

1 に答える 1