anchor
동작을 사용해야하는 간단한 메뉴를 나타내는 간단한보기가 있습니다. 같은 페이지에는 H2
개의 태그들과 id
의 링크가 스크롤되어야합니다.경로 및 앵커 태그가있는 앵글 태그, 두 번째 클릭시 작동
나는 $anchorScroll
과 $location
을 사용하고 있습니다.
문제 : 내가 링크를 클릭 처음으로, 내가 볼 수있는 경로가 업데이트되어, 예를 들면 :
http://localhost:60002/#!/docs/view/somedoc#someResourceId
그러나 는 경로의 SECOND 시간을 트리거 그것을 클릭하면 예상대로 작동합니다.
업데이트 :anchorScroll()
은 수동으로 element.scrollIntoView(true)
같은 동작을 사용하지 않았습니다. $location.hash
을 사용하지 않으면 작동하지만 앵커에 연결할 가능성이 느슨합니다.
아이디어가 있으십니까?
보기 :
<div ng-controller="DocsMenuCtrl">
<ul ng-repeat="menuItem in menuItems">
<li><a ng-click="foo(menuItem.resourceId)">{{menuItem.title}}</a></li>
</ul>
</div>
...
...
<h2 id="...">Test</h2>
...
CONTROLLER :
module.controller('DocsMenuCtrl', ['$scope', '$http', '$location', '$anchorScroll', 'session', function ($scope, $http, $location, $anchorScroll, session) {
$scope.foo = function (resourceId) {
$location.hash(resourceId);
$anchorScroll();
};
$http.get('/api/menu/').success(function (d) {
$scope.menuItems = d;
}).error(function() {
session.logger.log(arguments);
});
}]);
ROUTEPROVIDER CONFIG 등
$locationProvider.hashPrefix('!');
$routeProvider
.when('/default', {
templateUrl: 'clientviews/default',
controller: 'DefaultCtrl'
})
.when('/docs/view/:id', {
templateUrl: 'clientviews/docs',
controller: 'DocsCtrl'
})
.otherwise({
redirectTo: '/default'
});
$ .routeProvider는 어떻게 생겼습니까? –
요청한 정보로 @mcpDESIGNS을 (를) 수정했습니다. – Daniel
당신은 이것을 분류 할 수 있습니까? –