儘管存在許多類似的問題,但我還沒有找到如何在子作用域的父作用域中隱藏ng-show
的DOM元素。從子範圍到父範圍的Angularjs ng顯示不刷新
我有兩個嵌套的控制器。 在父親(附加)中,我使用YouTube嵌入指令來連續閱讀視頻,儘管在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顯示從子控制器設置爲真/假...
任何想法我怎麼能實現這一目標?
我試圖使用$scope.$parent
與上述對象和一個原語,但沒有改變一件事。
這是因爲用於NG-節目被更新,但NG-顯示正在出ngView的不刷新實際值...
可以通過使用routeChange事件得到了很多關於當前路由信息來管理您的視頻播放器。不清楚什麼決定了視頻狀態,但聽起來像一個簡單的服務結合routeParams將幫助你很多 – charlietfl
routeChange如何鏈接到在ngView之外刷新Dom? – user1144446
可以監聽ngView以外的路由變更。這是來自$ rootScope的廣播。例如,ngView以外的導航欄...可以使用它設置活動狀態 – charlietfl