2

我只是在学习 Angular,如果这是一个菜鸟问题,我深表歉意。我正在尝试创建一个固定位置的侧边栏,其中包含将滚动到页面上不同元素的按钮(或链接)。所以我的第一个想法是按钮单击应该尝试滚动到,但据说这不是 Angular 方式,所有 DOM 模块都应该在指令中完成。我能找到的最好的例子是:http: //plnkr.co/edit/Po37JFeP5IsNoz5ZycFs ?p=preview

这个例子在被滚动到的元素上放置了一个指令,启动滚动的链接只有#hrefs。虽然我知道发生了什么,但我不明白将指令添加到元素的实际工作原理(在本例中为 h3)。指令是否监视位置元素,当它发生变化时,指令是如何执行的?

$anchorScroll 模式对我不起作用,因为我有一个固定的标题,并且需要滚动到有问题的元素,并使用负偏移量来解释标题。根据我所读到的关于该项目的信息,这是一个已知问题,正在修复中。

4

1 回答 1

0

我认为修改窗口的滚动位置不是 DOM(例如window.document)操作,而是对窗口位置的操作,因此任何滚动窗口的代码都可以在控制器中,而不会违反任何 Angular 的最佳实践规则。

我会看这篇博客文章以获得更好的解决方案:http ://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html

于 2013-05-22T22:59:01.057 回答