gpt4 book ai didi

javascript - AngularJS $anchorScroll 添加##-anchorname 到页面 URL。我怎样才能避免这种情况?

转载 作者:行者123 更新时间:2023-11-30 06:27:48 28 4
gpt4 key购买 nike

我正在使用 AngularJS 的 locationhash() + $anchorScroll 在通过 Ajax 加载内容后将选定的页面元素移动到窗口的顶部。

JS: 在 Controller 中:

     $scope.scrollTo = function (location) {
//Scroll to category head
$scope.categoryHead = "grouptitle-" + location;
$location.hash($scope.categoryHead);
$anchorScroll($scope.categoryHead);
};

在指令中:

 .directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
var scroll;
if (scope.$last === true) {
$timeout(function () {
//Scroll category to top of page after list has completed render
scroll = scope.scrollTo(scope.category);
});
}
}
};

这给了我 mysite.com/##grouptitle-2 或类似的显示 URL,看起来有点神秘。有什么方法可以配置此 anchor ,使其只显示一个哈希值,或者根本不修改地址栏 URL?

最佳答案

在您的 $anchorScroll 上删除参数。 anchorScroll 会自动从 $location.hash(<hash>) 中获取哈希值.

所以你的函数应该看起来像这样:

$scope.categoryHead = "grouptitle-" + location;
$location.hash($scope.categoryHead);
$anchorScroll();

如果 DOM 是动态更新的,那么包装 $location.hash$anchorScroll里面$timeout功能。

关于javascript - AngularJS $anchorScroll 添加##-anchorname 到页面 URL。我怎样才能避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999556/

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