javascript - 路由更改后,运行一次js脚本

标签 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
  });


});

最佳答案

在 $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>

关于javascript - 路由更改后,运行一次js脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29454389/

相关文章:

javascript - 监听 <form> 的 'onInvalid' HTML 事件

javascript - Angular ng-class 需要帮助设置

javascript - 将 javascript 不显眼地应用到文本框

javascript - VideoJs/Javascript |字幕不起作用

javascript - 如何保存已填写的表单的一部分并使用标题中的步骤号在 JQM 中导航

javascript - body 标记上的 OnMouseMove 导致子下拉元素出现问题

Javascript 树无法正常工作

angularjs - Angular 依赖注入(inject) - 我一直看到两种不同的方法

angularjs - 删除#字符导致应用程序无法在 Angular 中正常工作

javascript - 寻找纯Javascript函数式编程解决方案