我想添加一個自動播放屬性到基於is_autoplay範圍變量的視頻標籤。有條件地在angular.js中添加一個元素屬性
我在互聯網上搜索了所有,但我找不到我想要的確切片段。
我試過以下,但都沒有工作。
<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">
...
我知道這是晚了,但可能是有用的。對於角度爲1.3+以及沒有值的屬性(例如自動播放或必需),您可以使用'undefined':''。它被刪除,因爲ng-attr-具有刪除屬性的allOrNothing功能,如果表達式產生未定義的話。 –