如果我没有使用angular,那么将加载路由mylink,然后浏览器将向下滚动到sectionid部分。
在Angular中,它不会滚动。我读了一些完全疯狂的解决方案,涉及注入多个模块并拥有疯狂的唯一URL。我拒绝做这样的事情。
我希望我的href值保持标准。 Angular有什么方法可以做到这一点吗?
请记住,如果" mylink"已经加载,然后链接工作正常,但如果我在另一个页面,说" home",然后我导航到mylink #sectionid,然后滚动不会发生。
(我的意思是......如果Angular可以做到这一点,我会认为这是一个错误。从现在仍然使用的90年代开始,不支持常用的语法是荒谬的)< / p>
编辑:我认为问题可能是本网站上的AJAX数量。
答案 0 :(得分:0)
当然可以,您需要将$anchorScroll
注入您的控制器
example from the angular site:
function ScrollCtrl($scope, $location, $anchorScroll) {
$scope.gotoBottom = function (){
// set the location.hash to the id of
// the element you wish to scroll to.
$location.hash('bottom');
// call $anchorScroll()
$anchorScroll();
};
}
从另一条路线你可以通过传递到路线的参数来处理这个问题,并在初始化时根据路线参数滚动。
答案 1 :(得分:0)
我不是我的解决方案的忠实粉丝,但我听onRouteChange,然后注入anchorScroll并在1000毫秒超时后简单地调用anchorScroll,因为哈希已经设置,不需要再做了。 [给所有有角度的东西腾出时间来完成自己的工作(我正在研究的网站上有太多的AJAX,但我还没有控制数据,所以我无能为力)] < / p>
Anywho,手动启动锚点滚动工作。如果有人知道更好的方法,那就是膨胀。