ngRoute与动画滚动冲突

时间:2016-01-08 07:48:16

标签: javascript angularjs

我的ng-route与我在网页上实现的动画滚动冲突:

这是我的滚动元素:

<a href="#one" class="goto-next scrolly">Next</a>

其中“#one"是滚动到goto-next的部分ID是图像类,滚动是用于平滑滚动动画。

这是我的ngRoute配置:

angular.module('starter', ['ionic','ngRoute'])

.config(function($routeProvider) {
        $routeProvider

            // route for the home page
            .when('/home', {
                templateUrl : 'templates/home.html',
                controller  : 'mainController'
            })

            // route for the about page
            .when('/whatwedo', {
                templateUrl : 'templates/whatwedo.html',
                controller  : 'mainController'
            })

            // route for the contact page
            .when('/tryus', {
                templateUrl : 'templates/tryus.html',
                controller  : 'mainController'
            })

            .when('/pricing', {
                templateUrl : 'templates/pricing.html',
                controller  : 'mainController'
            })
            .when('/videos', {
                templateUrl : 'templates/videos.html',
                controller  : 'mainController'
            })
            .otherwise({
      redirectTo: '/home'
    });
})

每当我点击滚动元素时,n-groute将其路由到默认网页,而不是滚动,它会路由到默认网页。无法修复它。请帮助。

编辑:使用ui.router而不是ngRoute但仍然滚动动画(点击按钮时自动滚动)不起作用。

1 个答案:

答案 0 :(得分:1)

Angular中的内置路由器提供程序不是很完美,它有很多问题,比如你所拥有的,所以我不建议使用它。您可以查看ui-router,因为这将解决您的问题,因为它实现了一个类似状态的机器来操作路由/链接,它更加灵活和方便。

你遇到这种问题的原因是因为它在网址中追加#one并且本质上Angular-router正在观察更改并且它将自动处理新的URl,这可能会说该页面是没找到。

请参阅README并查看提供的示例。

希望这可以解决您的问题。