gpt4 book ai didi

angularjs - 使用 BASE 标签和 HTML5Mode 时,如何在 Angular 中设置根路径?

转载 作者:行者123 更新时间:2023-12-04 08:55:46 24 4
gpt4 key购买 nike

给定我在 <base href="/test/"> 中的 Angular 应用程序的基本示例目录,将应用程序发送回主(或根)路径的最佳方式是什么?菜单片段(如下)中的所有链接都有效,但是,“主页”链接会导致 IE 在后续请求中重新加载应用程序(特别是 HomeCtrl)。

app.js

var basic = '<h1>{{title}}</h1><p>{{body}}</p>';

var app = angular.module('website', []);

app.config( function($routeProvider, $locationProvider) {
$routeProvider.
when('/', { template: basic, controller: HomeCtrl }).
when('/about', { template: basic, controller: AboutCtrl }).
when('/experiments', { template: basic, controller: ExperimentsCtrl }).
when('/:alias', { template: basic, controller: PageCtrl, resolve: { alias: resolveAlias } }).
otherwise({ redirectTo: '/' });

$locationProvider.html5Mode('true');
} );

menu.html

<base href="/test/">
....
<div id="menu">
<a href="./" class="btn">Home</a>
<a href="./about" class="btn">About</a>
<a href="./experiments" class="btn">Experiments</a>
<a href="./unicorn" class="btn">Unicorn</a>
</div>

更新

在 IE9 中,对根的每个请求都会重新运行 JS 文件,然后触发路由事件两次。
LOG: MainCtrl Loaded!
LOG: routeChangeStart[object Arguments]
LOG: routeChangeSuccess[object Arguments]
LOG: routeChangeStart[object Arguments]
LOG: routeChangeSuccess[object Arguments]
LOG: HomeCtrl Called!

最佳答案

从文档:

redirectTo – {(string|function())=} – value to update $location path with and trigger route redirection.

所以浏览器重定向是您正在调用的函数的一部分。

代替:
{ redirectTo: '/' }

尝试使用与家庭路线相同的路线:
{ template: basic, controller: HomeCtrl }

我还没有尝试过这个,因为我现在无法做到,但请告诉我它是否有效。

关于angularjs - 使用 BASE 标签和 HTML5Mode 时,如何在 Angular 中设置根路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com