元素scrollTo在AngularJS的控制器或指令中?

时间:2013-05-22 20:50:16

标签: javascript angularjs angularjs-directive

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

此示例对滚动到的元素放置一个指令,启动滚动的链接只有#hrefs。当我得到正在发生的事情时,我不明白如何将该指令添加到该元素实际上是有效的(在这种情况下是h3)。该指令是否监视location元素以及何时更改,这是指令的执行方式?

$ anchorScroll模式对我来说不起作用,因为我有一个固定的标题,需要滚动到有问题的元素,并使用负偏移量来计算标题。从我读到的有关该项目的内容来看,这是一个已知问题,并且正在进行修复。

1 个答案:

答案 0 :(得分:0)

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

我要查看此博客文章,了解更多更好的解决方案:http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html