gpt4 book ai didi

angularjs - Angular 应用程序中的外部链接

转载 作者:行者123 更新时间:2023-12-01 09:29:55 26 4
gpt4 key购买 nike

我正在将 Angular 整合到现有 Rails 应用程序的单个页面中。

一切都与使用以下页面内的路由完美配合

app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/services/:id', {
templateUrl: "/javascripts/angular/templates/service_ui/service.html",
controller: "ServiceCtrl"
})

$locationProvider.html5Mode(true);
});

但是,我想保持与 Angular 无关的链接的正常功能。例如,我们在 header 中有许多链接,这些链接链接到其他地方,现在正被 Angular 路由器捕获。

我在以下位置找到了一些潜在的解决方案:https://groups.google.com/forum/?fromgroups#!topic/angular/basidvjscRk

但是基本路径方法似乎不起作用..并且 target="_self"方法相当突兀。有没有更好的方法让 Angular 忽略配置函数中未指定的路由?

我知道有一个 .otherwise() 方法,但这似乎又是一个 hack。我错过了什么吗?

非常感谢!

最佳答案

我们有一个相对“传统”的网络应用程序,因为大多数链接都会触发整个页面的重新加载;很少有链接通过 Angular 的路由系统。在我们的模块定义之后,我们有以下内容:

app.run(function($location, $rootElement) {
$rootElement.off('click');
});

这会停止 built-in interception of clicks当您单击链接时,Angular 用来操纵 URL 等;问题是,您现在必须手动使用 $location 每当您希望 Angular 执行其 URL 魔术(例如,通过 ngClick 和函数相应地操纵 $location)。

您可以考虑将 $rootElement.off 与特殊指令或配置函数结合使用,在您检测到包含特定 URL 片段的链接上重新安装此行为。

关于angularjs - Angular 应用程序中的外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755240/

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