我的 angular 路由在我在 app.js 中定义的实际 URL 之前有一个 '#%2F'

my angular routes have a '#%2F' before the actual URL I have defined in the app.js

我正在 app.js 中设置我的 angular 路线:

.config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .when('/characters', {
        templateUrl: 'views/characters.html',
        controller: 'AboutCtrl',
        controllerAs: 'characters'
      })
      .when('/framedata', {
          templateUrl: 'views/framedata.html',
          controller: 'FrameDataCtrl',
          controllerAs: 'frame'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

这些 URL 确实有效,因为当我输入 localhost:9000/framedata 或 /characters 时,它会显示我期望的视图。当我使用按预期定义链接的导航栏时,会添加一个“#%2F”,如下所示:http://localhost:9000/#!/#%2F字符

 <ul class="nav navbar-nav">
          <li class="active"><a href="#/">tekkenMitzu?</a></li>
          <li><a ng-href="#/characters">Characters</a></li>
          <li><a ng-href="#/framedata">Frame Data</a></li>
        </ul>

我希望这能提供足够的信息,请告诉我是否应该给你更多信息,如果有必要,我可以将其上传到域,以便你可以看到 'live' 版本。

试试下面的代码

.config(function ($routeProvider,$locationProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .when('/characters', {
        templateUrl: 'views/characters.html',
        controller: 'AboutCtrl',
        controllerAs: 'characters'
      })
      .when('/framedata', {
          templateUrl: 'views/framedata.html',
          controller: 'FrameDataCtrl',
          controllerAs: 'frame'
      })
      .otherwise({
        redirectTo: '/'
      });
        // use the HTML5 History API
        $locationProvider.html5Mode(true);// it will remove the #
  });

And your URL having some white space if you remove the space then the %2F will clear

更多详情,请查看

AngularJS converting my ng-href url "slash" into "%2f"