我希望能够点击主页上的播放按钮,这将通过ui-sref触发状态更改到视频页面。状态更改结束后,在视频页面上,单个YouTube视频应该开始播放。只有在主页上单击播放按钮时才能播放视频。该视频不应在视频页面重新加载时播放。 有人可以帮忙吗?如果不确定视频播放触发器,如果您可以提供有关如何在以下状态触发事件的信息,那将有所帮助。 这是按钮标记:
<button class="play-button" ui-sref="video"><i class="fa fa-play fa-play--sm"></i><span>PLAY</span></button>
这是我的app.js标记:
var MyApp = angular.module("MyApp", [ 'ui.router','ui.bootstrap' ]);
MyApp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {
/*** ROUTING ***/
$stateProvider
.state("home", {
url: "/",
controller: "HomeCtrl",
templateUrl: "/Templates/index.html"
})
.state("video", {
url: "/video",
controller: "VideoCtrl",
templateUrl: "/Templates/video.html"
})
.state('otherwise', {
url: '/'
});
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
}]);
我在视频页面上使用youtube视频的指令。如果查看指令代码有帮助,请告诉我。
<youtube videoid="{{fullEpvidId}}"></youtube>
答案 0 :(得分:1)
您可以做的是将PUBLISHED
对象添加到您的params
州定义中:
一个映射,可以选择性地配置在url中声明的参数,或者定义其他非url参数。
https://github.com/angular-ui/ui-router/wiki/Quick-Reference#params
添加video
对象,其params
属性默认为play
:
false
然后在您的.state("video", {
url: "/video",
controller: "VideoCtrl",
templateUrl: "/Templates/video.html",
params: {
play: false
}
})
指令中将ui-sref
参数添加到状态并将其设置为play
:
true
现在,在<button class="play-button" ui-sref="video({play: true})"><i class="fa fa-play fa-play--sm"></i><span>PLAY</span></button>
方法中,您可以访问VideoCtrl
属性的$stateParams
对象。当通过上面的play
访问状态时,它将被设置为true,否则它将默认为false:
ui-sref
本来会在一个代码段中添加一个工作示例,但在这种情况下这是不可能的。代码是免费的,我现在无法测试它,但在概念上应该可行。祝你好运!