Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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
Javascript 音频标签,如何从角度处理它_Javascript_Angularjs_Html_Audio_Html5 Audio - Fatal编程技术网

Javascript 音频标签,如何从角度处理它

Javascript 音频标签,如何从角度处理它,javascript,angularjs,html,audio,html5-audio,Javascript,Angularjs,Html,Audio,Html5 Audio,我正在使用HTML5音频标签,但我想从角度控制它,根据指导原则,我不必从控制器接触DOM,所以我必须创建一个指令 假设我有两个按钮 <button onclick="playMusic()" type="button">Play Music</button> <button onclick="pauseMusic()" type="button">Pause Music</button> 但我需要把它转录成角形,那么,我如何才能为它创建一个指令呢

我正在使用HTML5音频标签,但我想从角度控制它,根据指导原则,我不必从控制器接触DOM,所以我必须创建一个指令

假设我有两个按钮

<button onclick="playMusic()" type="button">Play Music</button>
<button onclick="pauseMusic()" type="button">Pause Music</button>

但我需要把它转录成角形,那么,我如何才能为它创建一个指令呢?或者我可以在控制器中实现它吗?

您可以在控制器中实现它,但您需要在其中执行DOM操作……这正是您试图避免的

一些相关的代码,在阅读最后一个代码时可能需要注意:

    element = angular.element('<div class="form" data-my-slide="showForm">Text</div>');

希望有帮助

在angular中,任何DOM操作都应该在
指令中处理(请参阅)。这是为了分离关注点,并提高其他角度参与者的可测试性,例如
控制器
服务

播放音频的基本指令可能如下():

以及相关的HTML:

<my-audio>
    <audio>
        <source src="demo-audio.ogg" />
        <source src="demo-audio.mp3" />
    </audio>
    <button class="play">Play Music</button>
    <button class="pause">Pause Music</button>   
</my-audio>

演奏音乐
暂停音乐

我正在使用HTML5音频标签进行此操作,我想在哪里设置.play和.pause类???我需要把播放机藏起来,然后用按钮呼叫。对不起,我的小提琴坏了。现在更新了,我想这是你想要的-
    link: function(scope, element, attrs) {

      // We dont want to abuse on watch but here it is critical to determine if the parameter has changed.
        scope.$watch(attrs.mySlide, function(newValue, oldValue) {

      // This is our logic. If parameter is true slideDown otherwise slideUp.
app.directive('myAudio', function() {
    return {
        restrict: 'E',
        link: function(scope, element, attr) {
            var player = element.children('.player')[0];
            element.children('.play').on('click', function() {
                player.play();
            });
            element.children('.pause').on('click', function() {
                player.pause();
            });
        }
    };
});
<my-audio>
    <audio>
        <source src="demo-audio.ogg" />
        <source src="demo-audio.mp3" />
    </audio>
    <button class="play">Play Music</button>
    <button class="pause">Pause Music</button>   
</my-audio>