我认为这与ng-enter事件没有被滴入最低ui视图有关,但不确定如何正确地解决这个问题。
我有一个大的angularjs应用程序与子视图在子视图和所有的动画工作时,用户导航整个应用程序完美。问题是当我访问一个deepLink (例如,简单的页面刷新)并单击触发ng-enter/ng-离开的按钮时,它似乎不会在正确的Ui视图上触发。
例如,在我们使用的简化模板中:
<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>当我导航到页面时,它会为第一个加载做一个弹出动画,当我按下next按钮时,ui视图<ui-view class="grandchild-view ng-scope">应该滑到下一个条目。当导航到页面时,这一切都像预期的那样工作,但是当我们访问深度链接时,弹出动画似乎再次发生,当我按下下一步滑动按钮时,这只会发生一次,在它按照预期的行为之后。
我认为这是ng事件没有在正确的ui视图上触发的问题,因为我在我似乎注意到的内容中添加了日志,在刷新后第一次在子视图上触发回车,然后在孙子视图上触发(显示不正确的动画),但是在随后按下的按钮上,它只在子视图上被触发,只有在孙子视图上被触发(显示正确的动画)。
有人能建议我如何解决这个问题吗?如果它使我们使用ui-router state.$go导航,通过一个param来设置控制器中用于指示动画的类,那么它可以提供建议吗?
$state.go($state.current.name, {
action: $scope.action
});操作可以是打开的(弹出页面并在来自应用程序的另一个区域时使用),也可以是透明的(在grandChild视图中更改页面时,唯一不同的是它们从哪个方向滑动)。
发布于 2016-11-01 16:46:55
我也遇到了同样的问题,似乎在某个地方有一个错误,插入/嵌套的ui视图不能正确触发ng动画。为了解决这个问题,我在插入新ui视图的状态上做了一个目标重加载:
$state.go('app.state_inserting_ui', {}, {reload: 'app.state_inserting_ui'});https://stackoverflow.com/questions/31205120
复制相似问题