AngularJS$anchorScroll将##-锚名添加到页面URL中.我怎样才能避免这种情况
AngularJS $anchorScroll adds ##-anchorname to page URL. How can I avoid this?
我正在使用AngularJS的locationhash() + $anchorScroll将选定的页面元素移动到窗口顶部,一旦其内容通过Ajax加载
。.JS: 在控制器中:
$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,看起来有点晦涩难懂。有没有办法配置此定位点,使其仅显示一个哈希,或者根本不修改地址栏 URL?
在您的$anchorScroll
删除参数。锚滚动将自动从$location.hash(<hash>)
中获取哈希
所以你的函数应该看起来像这样:
$scope.categoryHead = "grouptitle-" + location;
$location.hash($scope.categoryHead);
$anchorScroll();
如果 DOM 是动态更新的,则将$location.hash
和$anchorScroll
包装在函数$timeout
。
执行以下步骤:在此之后$location.hash($scope.categoryHead);加
$anchorScroll();
$location.hash('');
$location.replace();
$location.replace() 函数将从 url 中删除"#"。
执行以下步骤:在此之后$location.hash($scope.categoryHead);加
$anchorScroll();
$location.hash('');
$location.replace();
$location.replace() 函数将从 url 中删除"#"。
相关文章:
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- JavaScript while循环没有'不能在有条件的情况下工作
- 如何避免在这种情况下修改事件对象
- 避免在javascript中的jquery被注入到某个网页的情况下发生冲突
- 如何在发送keyup事件时避免出现比赛情况
- AngularJS$anchorScroll将##-锚名添加到页面URL中.我怎样才能避免这种情况
- 为什么 Angular 将 URL 片段 #foo 重写为 #/foo 以及如何避免这种情况
- Requirejs jQuery正在覆盖WordPress加载的jQuery,我怎样才能避免这种情况(通过调用noCon
- 如何使用 JSManagedValue 来避免在没有发布 JSValue 的情况下出现引用周期
- 每当我按下后退按钮或重新加载按钮时,我的计时器都会重新启动.如何避免这种情况
- 你能在禁用Javascript的情况下进行表单提交吗?
- 无效的 XML 格式 - 如何避免这种情况
- 为什么在使用片段时可以避免使用键,但在使用数组时不能
- 为什么我不能在不使用原型、调用或应用的情况下向对象添加属性
- 在这种情况下你能避免重复吗
- 你能避免和Promises一起嵌套吗
- 我不能根据情况旋转桌子
- 我怎么能避免把javascript在这个编辑模板
- 我能避免$scope吗?$watch返回一个未定义的值