尽管有许多类似的问题,我还没有找到如何ng-show
从子范围隐藏父范围中的 DOM 元素。
我有两个嵌套控制器。在父级(附加到 )中,我使用 youtube embed 指令能够连续阅读视频,尽管ng-view
.
<html ng-app="app" ng-controller="ParentCtrl">
<body>
<youtube-video id="player" ... ng-show="selectedVideo.showVideo"></youtube-video>
<div ng-view></div>
</body>
</html>
当我第一次到达 ngRoute 中定义的路由时,会调用父控制器方法,并且在两个控制器中我可以决定显示或隐藏视频
$scope.selectedVideo.showVideo = true;
视频可以根据我的意愿显示或隐藏。
但是,当我使用后退按钮时,不会调用父控制器方法,但我还是调用了
$scope.selectedVideo.showVideo = false;
但视频仍然显示...
那时,当我完全(手动……)刷新页面时,视频终于被隐藏了。
我不确定为什么会这样……
我基本上希望有一些显示视频的 ngRoute 视图,而其他的则不显示。也就是说,我希望父控制器的 ng-show 从子控制器设置为 true/false ...
知道如何实现吗?
我尝试同时使用$scope.$parent
上述对象和原始对象,但这并没有改变任何事情。
这是因为用于 ng-show 的实际值已更新,但 ng-show 不在 ngView 中并没有刷新...