這是我一直在玩的一個概念,並且能夠在一些中繼器元素的視圖中工作。我還沒有得到它的動畫ng-view
呢......但應該給你一個很好的起點。
概念是在每個路由配置中存儲一個ng-animate
對象。 您可以將範圍對象傳遞給ng-animate
,而無需表達式。
function Ctrl($scope){
$scope.ANIM={enter: 'animate-enter', leave: 'animate-leave'};
}
<li ng-animate="ANIM">
在配置:
$routeProvider.when('/foo', {
controller: 'Ctrl',
templateUrl:'view1.html',
anim:{enter: 'skew-enter', leave: 'skew-leave'}
})
然後在run()
監聽$routeChangeStart
,並從當前的路由配置
app.run(function($rootScope){
$rootScope.anim={enter: 'animate-enter', leave: 'animate-leave'}
$rootScope.$on('$routeChangeStart', function(event, current){
$rootScope.anim= current.anim
})
})
成了動畫在我的沙箱版本我做的:
function Ctrl($scope, $rootScope){
$scope.ANIM=$rootScope.anim;
}
再次......這仍然是概念證明階段。當我有兩個相同的ng動畫視圖,並在每個控制器使$scope.anim=$rootScope.anim
它的作品。
希望這有助於...如果你做任何事情,更是好奇吧
這裏肯定會讓你感興趣的鏈接:http://code.angularjs.org/1.1.4/docs/api/ng.directive:ngView#animations – tomahim
我認爲ngAnimate正是你正在尋找的,但請注意,此模塊已在1.2中修改,而1.1.4的CSS動畫在1.2中不起作用。 http://slid.es/gsklee/animation-in-angularjs-12 - 在這裏你可以看到變化的好概述。 – lort
是的,完全理解如何做官方1.2的方式。尋找更具可擴展性的解決方案,在路由配置中執行此操作,也將支持相反的操作。 –