我正在尝试实现一个系统,在路由发生变化之后,我想只运行一次基于动画的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
});
});
答案 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">› About Me</a>
在href中,您只有#about
,但必须是#/about
。
<a href="#/about">› About Me</a>