2014-10-28 62 views
1

我的问题可能会有点力量,因为我还没有发现任何其他情况。AngularJS:如何有条件地应用视图动画?

我想执行视图动画,但并非总是如此。到目前为止,我有的动画在.css格式:

.view.ng-enter{ 
    animation: view_enter @anim-view-dur; 
} 

.view.ng-leave{ 
    animation: view_leave @anim-view-dur; 
} 

因此,当我从一个页面到另一个,它被执行。

确切的情况下,我不希望应用动画视图是在一个页面,我有一个ScrollSpy Bootstrap边栏工作。因为它是一个视图中,我不得不做的锚链接与功能:

$scope.scrollTo= function (id){ 
     $location.hash(id); 
     $anchorScroll(); 
    }; 

而当这个函数被调用,它的触发视图动画。有什么办法可以防止在这种情况下触发视图动画?

非常感谢。

+1

难道是可以接受的,以防止'scrollTo'功能从触发视图重装,或者是说东西是需要? – tasseKATT 2014-10-29 09:34:46

+0

@tasseKATT我试过了,使用'$ scope。$ on('$ locationChangeStart',function(ev){ev.preventDefault(); });',但是它永远不会改变路线,就像链接变得冻结。有没有其他方法来防止视图重新加载?谢谢 – 2014-10-29 10:25:31

+0

很难说如果它符合你的用例,但尝试将'reloadOnSearch'设置为'false'作为路由。例如:'templateUrl:'template.html',控制器:'SomeController',reloadOnSearch:false' – tasseKATT 2014-10-29 10:34:15

回答

0

这是为我工作:

// Routes config 
app.config(function($routeProvider) { 
    $routeProvider 
    .when("/", { 
     templateUrl : "main.htm" 
     controller : "MyController" 
     reloadOnSearch : true   
    }) 
}); 

您也可以使用这router-ui