마침내 내가 필요한 것을 얻었습니다.
맨 위로 스크롤해야했지만 일부 전환이 필요하지 않았습니다.
경로별로 라우팅 레벨에서이를 제어 할 수 있습니다.
@wkonkel에 의해 위의 솔루션을 결합하고 noScroll: true
일부 경로 선언에 간단한 매개 변수를 추가 합니다. 그런 다음 전환에서 그것을 잡았습니다.
전체적으로 : 이것은 새로운 전환에서 페이지의 상단으로 이동하고, 전환 시 Forward
/ 상단으로 Back
이동 하지 않으며 필요한 경우이 동작을 무시할 수 있습니다.
코드 : (이전 솔루션 및 추가 noScroll 옵션)
// hack to scroll to top when navigating to new URLS but not back/forward
let wrap = function(method) {
let orig = $window.window.history[method];
$window.window.history[method] = function() {
let retval = orig.apply(this, Array.prototype.slice.call(arguments));
if($state.current && $state.current.noScroll) {
return retval;
}
$anchorScroll();
return retval;
};
};
wrap('pushState');
wrap('replaceState');
그것을 당신의 app.run
블록에 넣고 주입하십시오 $state
...myApp.run(function($state){...})
그런 다음 페이지 상단으로 스크롤하지 않으려면 다음과 같이 경로를 만드십시오.
.state('someState', {
parent: 'someParent',
url: 'someUrl',
noScroll : true // Notice this parameter here!
})