Я делаю приложение, и у меня разные видео на одной странице, я не хочу запускать разные видео в одно и то же время. Поэтому, когда я хочу, чтобы пользователь воспроизводил другое видео, я должен перезагрузить другие фреймы (так что видео остановить автоматически)?
Есть ли способ манипулировать с iframe от контроллера, и если вы можете предоставить простой пример или любую вещь, которая может решить эту проблему, над которой я работал более двух дней.
Контроллер:
function MyCtrl($scope) {
$scope.video1 = 'https://www.youtube.com/embed/wsXWjj88vKo';
$scope.video2 = 'https://www.youtube.com/embed/FVXajf9ALPM';
}
Html:
<div ng-controller="MyCtrl">
<iframe ng-src="{{video1}}" width="400" height="300" frameborder="0" allowfullscreen></iframe>
<iframe ng-src="{{video2}}" width="400" height="300" frameborder="0" allowfullscreen></iframe>
</div>
Или любой способ принудительно перезагрузить кнопку, например:
$scope.reload = function() {
$scope.video1 = 'https://www.youtube.com/embed/wsXWjj88vKo';
};
пример обновления директивы
csapp.directive('csReloadOn', ['$timeout', function ($timeout) {
var getTemplate = function () {
return '<div ng-if="doRefreshPageOnModeChange"><div ng-transclude=""></div></div>';
};
var linkFunction = function (scope, element, attrs) {
scope.doRefreshPageOnModeChange = true;
scope.$watch(attrs.csReloadOn, function (newVal, oldVal) {
if (newVal === oldVal) return;
scope.doRefreshPageOnModeChange = false;
$timeout(function () { scope.doRefreshPageOnModeChange = true; }, 100);
});
};
return {
restrict: 'AE',
transclude: true,
template: getTemplate,
link: linkFunction
};
}]);
как это использовать
<div cs-reload-on="someVar">
----- contents to reload ----
</div>