路径更改后,运行一次js脚本

时间:2015-04-05 05:25:16

标签: javascript jquery angularjs

我正在尝试实现一个系统,在路由发生变化之后,我想只运行一次基于动画的javascript。如果您在页面之间切换,并返回到关于页面,那么现在会发生什么。这些潦草的网站真的很慢,这正是我想要避免的。

app.controller(' aboutController',function($ scope,$ route){

$scope.$on('$routeChangeSuccess', function() { 


  // Just need this to run once
  $('#about').particleground({
      dotColor: '#666',
      lineColor: '#666',
      lineWidth: .3,
      particleRadius: 3,
      parallaxMultiplier: 3
  });


});

1 个答案:

答案 0 :(得分:1)

在$ routeChangeSuccess`中运行动画之前检查currentRoute.redirectTo。它会阻止动画多次运行。

$scope.$on("$routeChangeSuccess", function(event, currentRoute, previousRoute){
  if(!currentRoute.redirectTo) {
              $('#about').particleground({
                dotColor: '#666',
                lineColor: '#666',
                lineWidth: .3,
                particleRadius: 3,
                parallaxMultiplier: 3
             });
       }
});

它执行两次的原因是:

在您的HTML中:

<a href="#about">›&nbsp;&nbsp;About Me</a>

在href中,您只有#about,但必须是#/about

<a href="#/about">›&nbsp;&nbsp;About Me</a>