您应该使用指令来进行 DOM 操作。希望您的 videoElement 与您的按钮在同一范围内。如果是这样,定义一个 $watch()es 你的模型的指令:
angular.module('myModule', [])
.directive('pauseVideo', function() {
return {
scope: { someProperty: '@pauseVideo' },
link: function(scope, element, attrs) {
scope.$watch('someProperty', function(value) {
var videoElement = $('videoElement')[0];
videoElement.currentTime = time(value);
videoElement.pause();
})
}
}
})
将 scope 属性添加到使用 videoElement 的 HTML 元素。例如,如果您使用 ng-click 操作的属性是 $scope.someProperty:
<div id="videoElement" pause-video="someProperty">
如果 videoElement 与按钮不在同一范围内,您可以将代码放在您的控制器上,知道这违反了“Angular 方式”,但对您的工作感到满意::)
<a ng-click="pauseVideo()">pause video</a>
在您的控制器中:
$scope.pauseVideo = function() {
$scope.someProperty = ...;
var videoElement = $('videoElement')[0];
videoElement.currentTime = time (from my model);
videoElement.pause();
}