【发布时间】:2015-03-03 03:15:31
【问题描述】:
我正在使用带有 Bootstrap 的 AngularUI 路由器。我在同一状态下有两个视图,并且希望在单击按钮时滚动到第二个视图。当初始状态和视图加载时,我不需要进行任何滚动。单击“添加更多”按钮时,我希望页面滚动到#start。我尝试使用 $anchorScroll 来完成此操作,但没有任何运气。
有什么好的方法可以实现这个吗?
HTML:
<!-- index.html -->
<div ui-view="list"></div>
<div ui-view="selectionlist"></div>
<!-- list.html -->
<div id="scrollArea"><a ng-click="gotoBottom()" class="btn btn-danger btn-lg" role="button">Add More</a>
<!-- selectionlist.html -->
<div class="row" id="start"></div>
控制器的Javascript:
myApp.controller('SelectionListCtrl', function (Selections, $location, $anchorScroll) {
var selectionList = this;
selectionList.selections = Selections;
this.selectedServices = Selections;
selectionList.gotoBottom = function() {
$location.hash('start');
$anchorScroll();
};
});
路由的Javascript:
myApp.config(function ($stateProvider, $urlRouterProvider, $uiViewScrollProvider) {
$uiViewScrollProvider.useAnchorScroll();
$urlRouterProvider.otherwise('/');
$stateProvider
.state('selection', {
url: '/selection',
views: {
'list': {
templateUrl: 'views/list.html',
controller: 'ProjectListCtrl as projectList'
},
'selectionlist': {
templateUrl: 'views/selectionlist.html',
controller: 'SelectionListCtrl as selectionList'
}
}
})
【问题讨论】:
-
不应该是 'a ng-click="gotoBottom()"' 而不是 'a ng-click="gotoSection()"'?
标签: angularjs twitter-bootstrap angular-ui-router