我是一个AngularJS应用程序的开发者,在构建第二个视图时遇到了URL问题:
我的appContact.js如下所示:
(function () {
"use strict";
var app = angular.module("appContacts", ["simpleControls", "ngRoute"])
.config(function ($routeProvider, $locationProvider) {
$routeProvider.when("/", {
controller: "contactsController",
controllerAs: "vm",
templateUrl: "/views/contactsView.html"
});
$routeProvider.when("/details/:firstName", {
controller: "contactsDetailsController",
controllerAs: "vm",
templateUrl: "/views/detailsView.html"
});
$routeProvider.otherwise({ redirectTo: "/"});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
});
})();
在我的HTML中,我有这个链接:
<a asp-controller="Contact" asp-action="Details" ng-href="#/details/{{contact.firstName}}" >{{ contact.firstName}}</a>
当我在浏览器上悬停时,正确的建议链接如下:
**http://localhost:8000/#/details/Matthew**
但当我点击链接导航至新页面时,URL 会更改为
**http://localhost:8000/#%2Fdetails%2FMatthew**
将“/”替换为%2会导致应用程序失败,并显示一个空白页面。
你知道为什么会出现这种情况以及如何解决吗?
我已经阅读了类似的帖子,但由于在浏览器之前我无法访问编码后的URL且错误发生在那里,所以它们中的任何一个似乎都不起作用。
谢谢
Rafael