在angular.js中有条件地添加一个元素属性。
在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
在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元素。
虽然这种方法可以解决问题,但并不总是一个好的选择。