Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AngularJS中触发一些javascript函数?_Javascript_Angularjs - Fatal编程技术网

如何在AngularJS中触发一些javascript函数?

如何在AngularJS中触发一些javascript函数?,javascript,angularjs,Javascript,Angularjs,我刚刚开始我的第一个angular.js项目,有一种情况,用户单击一个按钮,在我的模型上设置一个值,但我现在还需要的是html视频元素将其currentTime属性设置为一个值,并且当前播放的视频暂停 所以我需要的是 1) 更新我的模型(我已通过ng click完成) 2) 运行一些javascript,它可以 { $('videoElement')[0].currentTime = time (from my model); $('videoElement')[0].paus

我刚刚开始我的第一个angular.js项目,有一种情况,用户单击一个按钮,在我的模型上设置一个值,但我现在还需要的是html视频元素将其currentTime属性设置为一个值,并且当前播放的视频暂停

所以我需要的是

1) 更新我的模型(我已通过ng click完成)

2) 运行一些javascript,它可以

{
    $('videoElement')[0].currentTime = time (from my model);
     $('videoElement')[0].pause();
}

我不确定第二步应该从何处触发以及如何触发?

您应该使用指令来执行DOM操作。希望您的videoElement与按钮在同一范围内。如果是这样,请定义一个指令$watch()对您的模型执行以下操作:

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">

非常感谢你,马克。我的第一次尝试是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();
}