gpt4 book ai didi

angularjs - 有条件地在 angular.js 中添加元素属性

转载 作者:行者123 更新时间:2023-12-03 11:43:27 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the best way to conditionally apply attributes in AngularJS?

(13 个回答)


6年前关闭。




我正在尝试基于 is_autoplay 范围变量将自动播放属性添加到视频标签。

我在整个互联网上搜索,但找不到我想要的确切片段。

我尝试关注,但它们都不起作用。

<video autoplay="{{is_autoplay ? 'true' : 'false'}}">
...
<video ng-attr-autoplay="{is_autoplay}">
...

甚至有人提出以下建议
<video {{is_autoplay ? "autoplay" : ""}}>
...



以下解决了我的问题。
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);
}
}
);
}
};
});

任何人都可以使用此指令有条件地添加/删除属性。
Usage
<video width="100%" height="100%" controls attronoff data-attr-on="{{is_autoplay}}" data-attr-name="autoplay">
...

最佳答案

一种简单的解决方案是使用 ng-if根据条件生成dom。

例如,在您的情况下,使用

<video autoplay="true" ng-if="is_autoplay">...</video>
<video ng-if="!is_autoplay">...</video>

所以如果 is_autoplaytrue ,第一个元素将使用 autoplay 生成属性和第二个不会在 dom 中。

如果 is_autoplayfalse , 第二个 dom 元素将在没有 autoplay 的情况下生成属性。

关于angularjs - 有条件地在 angular.js 中添加元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com