在angular.js中有条件地添加一个元素属性。

9 浏览
0 Comments

在angular.js中有条件地添加一个元素属性。

我试图根据is_autoplay作用域变量给视频标签添加autoplay属性。\n我在互联网上搜索了很多,但没能找到我想要的确切代码片段。\n我尝试了以下几种方式,但都不起作用。\n


\n

\n


\n

\n


\n甚至有人建议以下方式\n

\n


\n


\n以下方法解决了我的问题。\n

app.directive('attronoff', function() {
    return {
    link: function($scope, $element, $attrs) {
        $scope.$watch(
            function () { return $element.attr('data-attr-on'); },
            function (newVal) { 
                var attr = $element.attr('data-attr-name');
                if(!eval(newVal)) {
                    $element.removeAttr(attr);
                }
                else {
                    $element.attr(attr, attr);
                }
            }
        );
        }
    };
});

\n任何人都可以使用这个指令以条件添加/删除属性。\n用法\n

0
0 Comments

问题出现的原因是为了根据is_autoplay属性的值来有条件地添加autoplay属性。解决方法是直接根据is_autoplay属性设置autoplay属性。具体的代码如下:


autoplay属性是一个布尔属性,当存在时,音频会在不停止的情况下尽快自动开始播放。

0
0 Comments

在Angular.js中,有一种条件添加元素属性的问题出现。问题的原因是需要根据特定条件来动态地添加或移除元素的属性。解决这个问题的方法是使用ng-if指令来根据条件生成dom元素。

具体来说,在这个例子中,可以使用ng-if指令来根据条件生成video元素。如果is_autoplay为true,则生成带有autoplay属性的video元素,否则生成没有autoplay属性的video元素。

这样,如果is_autoplay为true,第一个video元素将生成带有autoplay属性的dom元素,而第二个video元素将不会在dom中生成。如果is_autoplay为false,则第二个dom元素将生成没有autoplay属性的video元素。

虽然这种方法可以解决问题,但并不总是一个好的选择。

0