gpt4 book ai didi

javascript - 在 Angular 中路由到非 Angular 页面

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:42 25 4
gpt4 key购买 nike

我正在将大型服务器呈现的应用程序转换为使用 Angular。由于规模,我们一次做一点。在此转换期间,应用程序的一部分将使用 Angular,而另一部分则不会。这意味着路由有时会在 Angular 应用程序内路由,有时它需要从旧世界过渡到新世界(简单)或从新世界过渡到旧世界(更难)。

理想情况下,我想专门将 Angular 应用程序(新世界)中的一些页面转换路由到适当的 Controller ,但是任何其他页面转换应该只获取新的 HTML 页面(旧世界)。

我似乎不知道该怎么做。我想我需要使用 routeProvider 和 when/otherwise,但我发现没有很多有用的文档。

最佳答案

你不能在旧世界使用 routeProvider,因为 Angular 路由只会在实际的同一页面内引导你。

你可以为每个遗留路由创建一个占位符 Angular 路由,然后在 Controller 中,注入(inject) $window 并执行如下操作:

$window.location.href = destinationUrl;

类似于:(注销时转到旧世界)

app.controller('LogoutCtrl', function ($scope, $window) {
var destinationUrl = 'https://mywebsite.com/';
$window.location.href = destinationUrl;

});

反之亦然,要回到 Angular 世界,只需使用指向 Angular 路径的普通链接即可:

<a href="angular-app/#/my/route">Link</a>

如果你想要一个包罗万象的路由重定向到外部,你可以这样做:

otherwise({
controller: 'NotFoundCtrl'
});
...
app.controller('NotFoundCtrl', function($scope, $location, $window) {
var path = $location.path();
$window.location.href="http://test.com" + path;
})

关于javascript - 在 Angular 中路由到非 Angular 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26031748/

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