我认为这与ng-enter事件没有被深入到最低的ui视图有关,但不确定如何正确解决问题。
我有一个大的angularjs应用程序,在子视图中有子视图,当用户在整个应用程序中导航时,所有动画都能很好地工作。问题是当我访问deepLink(例如简单的页面刷新)并单击触发ng-enter / ng-leave的按钮时,它似乎没有触发正确的Ui-view
例如在我们使用的简化模板中:
<ui-content ui-view="" layout-fill="" class="ng-scope"><!-- uiView: undefined -->
<ui-view class="ng-scope"><!-- uiView: -->
<div id="child-view" ui-view layout="column" layout-fill="" class="ng-scope">
<ui-view class="grandchild-view ng-scope">
<!-- template for grandchild-view -->
<div ng-if="isActive" class="page {{action}}">
<!-- HTML Content here -->
</div>
</ui-view>
</div>
</ui-view>
</ui-content>
当我导航到页面时,它会为第一次加载执行弹出动画,当我按下下一个按钮时,ui-view <ui-view class="grandchild-view ng-scope">
应该滑动到下一个项目。当导航到页面时,这一切都按预期工作,但是当我访问深度链接时,当我按下按钮下一次滑动时,弹出动画似乎再次发生,这只发生一次,在它按预期运行之后。
我认为这是一个问题,ng-event没有触发正确的ui-view,因为我添加日志到我似乎注意到的是第一次按下按钮后刷新输入被触发的孩子然后查看孙子视图(显示不正确的动画),但在后续按下按钮时,它只在子视图上触发,只是孙子视图(显示正确的动画)
任何人都可以告诉我如何解决这个问题,如果它有所不同我们正在使用ui-router state.$go
进行导航,它通过一个参数来设置用于指示动画的控制器中的类
$state.go($state.current.name, {
action: $scope.action
});
操作可以打开(弹出页面并在来自应用程序的另一个区域时使用)下一个和上一个(当在grandChild视图中更改页面时,只有差异是他们从中滑动的方向)
答案 0 :(得分:1)
我遇到了同样的问题,似乎某个地方有插入/嵌套的ui-views没有正确触发ng-animations的错误。为了解决这个问题,我在插入新ui-views的状态上进行了目标重新加载:
$state.go('app.state_inserting_ui', {}, {reload: 'app.state_inserting_ui'});