gpt4 book ai didi

angularjs - 可以禁用 $locationProvider 和 $routeProvider 吗?

转载 作者:行者123 更新时间:2023-12-04 19:09:14 26 4
gpt4 key购买 nike

我可以禁用这些家伙吗?我在 asp.net mvc 应用程序中使用 angular.js,我不需要 angular 来控制与地址栏或链接相关的任何内容...

现在在 html5 模式下禁用 ( $locationProvider.html5Mode(false) ) 它将哈希和操作方法的名称添加到地址栏,例如:您转到 \Home\index ,它会导航,然后地址栏文本更改为 Home\index#\index .这不是很烦人吗?

如果我启用 html5 模式,它会完全停止加载页面(初始页面除外)。我尝试从初始加载的页面转到另一个页面 - 它会更改地址栏的文本(这次不添加主题标签)但不会加载页面本身。这不是令人沮丧吗?

最佳答案

这里有一个临时解决方案 AngularJS 1.1.5 - automatically adding hash tag to URLs

答案解释了第一步(如上所述,添加了新的哈希前缀)

yourApp.config(['$locationProvider', function($locationProvider){
$locationProvider.html5Mode(true).hashPrefix('!');
}]);

第一个位处理 Angular 在视觉上干扰您的地址栏,但现在单击任何链接都无法正常工作(阅读: history.pushState)

因此,正如用户@Kevin Beal 所指出的,解决方法是设置 target 的一些变体。的 <a>_self
$('a[href]').attr({'target':'_self'})

或根据具体情况:
<a href="foo" target="_self">Foo</a>
<a href="http://some.external/bar" target="_blank">Bar</a>

虽然,为了方便和理智,我认为它是这些的组合。

无标记 target
<a href="foo">Foo</a>
<a href="http://some.external/bar">Bar</a>

JS
// If `http` protocol present, assume external link
$('a[href^="http://"]').attr({'target':'_blank'});

// Otherwise, assume internal link
$('a:not([href^="http://"])').attr({'target':'_self'});

值得注意的是,上述选择器确实需要正确的 jQuery。

关于angularjs - 可以禁用 $locationProvider 和 $routeProvider 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076643/

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