我使用AngularJS构建Web应用程序。现在我使用AngularJS YouTube的嵌入插件。确切地说:https://github.com/brandly/angular-youtube-embed。
现在我通过以下事件监听器暂停我的视频:player.pauseVideo();
。我把这个添加到一个按钮。
YouTube嵌入与调用上述功能位于同一页面上。 该对象的标记是:
<youtube-video video-id="video" id="youtube-video" player="player" style="height:450px; width: 100%"></youtube-video>
对象上的player属性是你应该用来获取对象和函数调用之间链接的属性。
但是现在我还想在另一个单独的视图html文档上访问播放器对象。该页面上的功能不会暂停view.html上的视频。
有没有人知道如何使用类似player.pauseVideo();
之类的调用来访问其他网页上的对象。
答案 0 :(得分:2)
我假设是&#34;玩家对象&#34;你正在引用范围变量$scope.player
和#34;另一个页面&#34;你的意思是另一个视图,具有不同的范围,呈现在同一个html文档中,其中包含播放器的视图。
如果我对这些假设是正确的,那么你基本上有两个选项,它们都是有效的w.r.t. &#34;角度方式&#34;。
您可以在html文档中引入一个页面范围的控制器(让我们称之为MasterController)并在那里定义$scope.player
。然后,您可以在嵌入MasterController的每个控制器中访问$scope.player
。请注意,不得在嵌套控制器上为$scope.player
分配值,因为这会阻止原型继承机制。
角度中的每个范围都是$rootScope
的子级。通过在控制器中使用$rootScope.$broadcast
,您需要从播放器触发功能,并在玩家所连接的控制器中使用$scope.$listen
,您可以从应用中的每个可能位置控制播放器。 / p>
要确定哪种方式更适合您的用例,请考虑以下属性:
$scope.player
我推荐这本书&#34; Learning JavaScript Design Patterns&#34;由Addy Osmani和scopes
上的角度指南