我是AngularJS的新手,并且想实现依赖于路由的页面转换。例如,我希望页面根据路线向左滑动,向右滑动或淡入淡出。
我下面的“ Plunker”通过侦听$
routeChangeSuccess事件,然后将特定于过渡样式的CSS类应用于进入和离开视图来实现此目的(受http://phillippuleo.com/articles/scalable-
approach-page-transitions-
angularjs
):
http://plnkr.co/edit/ee4CHfb8kZC1WxtDM9wr?p=preview
但是,事件监听器中对$ scope。$ apply()的调用使AngularJS发出错误消息“ $ digest已经在进行中”。但是,如果我不调用$
scope。$ apply(),则不会更新离开视图的CSS类,并且动画无法正常工作。
这里发生了什么?
我看着你的朋克。问题在于您使用类为视图设置动画的方式。
当$routeChangeSuccess
事件触发时,ngView
在您有机会改变方向之前已经删除了该类。您可以通过如此快地应用新类来覆盖它,以至于不会引起注意,但是您会收到摘要进行中错误。
app.directive('animClass',function($route){
return {
link: function(scope, elm, attrs){
var enterClass = $route.current.animate;
elm.addClass(enterClass);
scope.$on('$destroy',function(){
elm.removeClass(enterClass);
elm.addClass($route.current.animate);
})
}
}
});
animate
为每个路线声明一个选项:app.config(function($routeProvider) {
$routeProvider.
when("/page1", {
templateUrl: "page1.html",
controller: "Page1Ctrl",
animate: "slideLeft"
}).
when("/page2", {
templateUrl: "page2.html",
controller: "Page2Ctrl",
animate: "slideRight"
}).
otherwise({
redirectTo: "/page1"
});
});
ngView
像这样添加它:<div ng-view ng-controller="ViewCtrl" anim-class class="view"></div>
.view {
width: 100%;
padding-left: 1em;
position:absolute;
top: 0;
left: 0;
}
.slideLeft.ng-enter, .slideLeft.ng-leave, .slideRight.ng-enter, .slideRight.ng-leave {
-webkit-transition:all 1s;
transition:all 1s;
}
.slideLeft.ng-enter {
left:100%;
}
.slideLeft.ng-enter.ng-enter-active {
left:0;
}
.slideLeft.ng-leave.ng-leave-active {
left:-100%;
}
.slideRight.ng-enter {
left:-100%;
}
.slideRight.ng-enter.ng-enter-active {
left:0;
}
.slideRight.ng-leave.ng-leave-active {
left:100%;
}
问题内容: 我有两个路线组,“动漫”和“漫画”。这些URL是/ anime/或/manga/,但它们都共享完全相同的控制器和模板 (唯一不同的是用于每个模板的配色方案,但这些颜色是在检查是否通过过滤器的过滤器中确定的)正在查看的特定项目是动漫还是漫画) : 动漫陈述定义: 漫画状态定义: 如您所见,其中已经有很多重复,我一点都不喜欢。随着我不断添加新路线,重复次数只会增加 (您已经可以看到mang
本文向大家介绍AngularJS中重新加载当前路由页面的方法,包括了AngularJS中重新加载当前路由页面的方法的使用技巧和注意事项,需要的朋友参考一下 这个问题同样困扰我很久,网上的回答五花八门,全都不能解决;终于在网上找很久,看到某大神的解决办法,整理作此分享;使用ui-router重新加载当前页面的问题。(ui-router版本需要是0.2.14以上的) 用angular做项目,会碰到需要
主要内容:AngularJS 实例,路由设置对象,AngularJS 实例本章节我们将为大家介绍 AngularJS 路由。 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。 通过 AngularJS 可以实现多视图的单页 Web 应用(single page web application,SPA)。 通常我们的 URL 形式为 http://xnip.cn/first/page,但在单页 Web 应用中 AngularJS 通过 #! + 标记
以下是所有相关文档页面的列表: eosio.system DICE eosio.system
问题内容: 当我向路由添加错误的段时,我遇到了ui-router的问题。 一个例子… http://xxx.xxxxx.xxx/roles可以正常工作。这是没有参数定义的路由。但是,如果我在浏览器http://xxx.xxxxx.xxx/roles/kk中添加了另一个细分,则$ urlRouteProvider.otherwise(’/’)不起作用,并且该应用程序正在尝试加载所有网络资源(css,
问题内容: 我有一个正在使用的应用程序,每当刷新页面时都会遇到问题。我正在使用嵌套视图(命名视图)来构建应用程序。每当我刷新页面时,都不会重新加载当前状态,只会使页面空白。 页面加载等于 我正在通过文件并通过状态循环从文件中读取导航。这就是我可以显示的内容: 对于嵌套json对象中的每个项目,将执行此代码。如果还有其他有用的方法,请告诉我。 问题答案: 有一个问题:AngularJS-UI-rou