gpt4 book ai didi

javascript - 从 html 更改 AngularJS url/route - javascript 代码

转载 作者:行者123 更新时间:2023-12-03 08:06:23 25 4
gpt4 key购买 nike

假设我有一个按钮,位于 ng-app 范围内,但位于 ng-controller/ng-view 范围之外。

<html ng-app="myApp">
<!-- ... -->
<body>
<button id="myButton">Click me!</button>
<div ng-view> <!-- angular-view --> </div>
</body>
</html>

我想在单击按钮时更改 URL/路由。

var button = document.getElementById('myButton');

button.addEventListener('click', function() {
//code that changes path.
});

我该怎么做?如果我尝试 window.location.href = '/'; 整个页面都会重新加载,而不仅仅是 View 。 $location 在 html javascript 中不可见,因此这不是一个选项。

如果有人知道我可以从javascript更改路径/路由/url的方法,我会非常乐意接受任何有效的答案,或者重定向到一些有用的文档帖子,或者重定向到另一个SO问题,因为我有一段时间试图找到这个问题的答案,但一无所获......

我会注意到,我尝试创建一个全局作用域函数,但这也不起作用。

angular.module('myApp', [])
.config( ... )
.run(function($rootScope, $location) {
$rootScope.setUrl = function(url) {
$location.path(url);
};
})
.controller(
.....

并使用 setUrl('/');$root.setUrl('/');$rootScope.setUrl('/' 进行调用);,但仍然什么都没有 ('undefined')。

注意:按钮脚本只是一个示例,我问这个问题的真正目的有点大,所以我试图简化。

最佳答案

如果您的目的是从 Angular 应用程序外部更改路线,那么您需要更改位置哈希部分:

window.location.hash = 'new-route';

Angular Controller 内部使用 $location.path方法。

关于javascript - 从 html 更改 AngularJS url/route - javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34371144/

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