我对 AngularJS 完全陌生。只是想尝试使用 $routeProvider 的相对 URL。
这是场景:
我有一个“编辑”页面,该页面的 ASP.NET MVC 链接是:
http://localhost/Workflow/Edit
所以 ASP.NET MVC 控制器是“WorkflowController”,动作是“编辑”。对于 Partials,我有 Controller 操作,每个操作都返回一个 Partial View,如下所示:
public ActionResult WorkflowTransition()
{
return PartialView("WorkflowTransition");
}
public ActionResult WorkflowTransitionApprovers()
{
return PartialView("WorkflowTransitionApprovers");
}
以下是 AngularJS 模块配置 - 注意:为每个路由调用 PartialView(如上所述)(这可能不正确):
$routeProvider.when('Workflow/WorkflowTransition', {
templateUrl: '/Workflow/WorkflowTransition',
controller: 'transitionCtrl',
});
$routeProvider.when('Workflow/WorkflowTransitionApprovers', {
templateUrl: '/Workflow/WorkflowTransitionApprovers',
controller: 'approversCtrl'
$routeProvider.otherwise({
redirectTo: '/'
});
注意:我没有指定以下任何一项:
$locationProvider.html5Mode(false);
或者
$locationProvider.html5Mode(false).hashPrefix('!');
href 链接是这样指定的:
<a href="#/Workflow/WorkflowTransition">{{workflow.Identifier}}</a>
这会生成这种形式的链接:
http://localhost/Workflow/Edit#/Workflow/WorkflowTransition
这显然是错误的(并且单击链接可能没有任何作用,可能是因为浏览器试图导航到哈希),所以我尝试了前导 '/',但也没有运气:
<a href="/#/Workflow/WorkflowTransition">{{workflow.Identifier}}</a>
如果我直接导航部分 ie http://localhost/Workflow/WorkflowTransition
,浏览器会按原样呈现 html(以及 angularjs 花括号 {{}})。
我的问题是:AngularJS 如何处理 '#' 或 '#!' 在确定相对 URL 时?例如,这条路线是否可行(假设我从锚标记中的 URL 中删除了 /Edit 部分):
$routeProvider.when('Workflow/WorkflowTransition',
匹配网址:
http://localhost/Workflow/#WorkflowTransition
?
它是否从 URL 中删除了“#”,然后根据 $routeProvider.when() 中的 URL 模式对其进行检查?
有人可以为相对 URL 建议正确的路线吗?