我的某些表单页面很高。按下这样的“保存”按钮
之后,我编写了一个滚动到表单上第一个错误的函数vm.scrollToError = function() {
var anchor;
for (var prop in vm.InwardLeaseForm.$error) {
anchor = vm.InwardLeaseForm.$error[prop][0].$name;
break;
}
$location.hash(anchor);
$anchorScroll.yOffset = 300;
$anchorScroll(anchor);
};
我的问题是,这会将带有字段ID的哈希添加到URL。有没有办法做到这一点,但在这种情况下不将这个额外的#vm.InwardLeaseForm_integerField_contractTerm_2
添加到URL?
答案 0 :(得分:1)
我的问题是,这会将带有字段ID的哈希添加到URL。
好吧,$location.hash(anchor);
就是这样做的。因此,如果您不希望它发生,请将其删除...
我认为这对于$ anchorScroll起作用是必需的。
阅读文档很有帮助;-)-https://docs.angularjs.org/api/ng/service/$anchorScroll:
调用时,它将滚动到与指定的
hash
相关的元素,或者滚动到(如果省略)与$ location.hash()的当前值相关的元素
因此,如果您未明确指定要滚动到的元素,则此值仅会返回当前位置的哈希值-但由于您使用的是$anchorScroll(anchor);
,因此在此之前修改位置哈希不会甚至有必要在这里。