Tôi đang cố thêm thuộc tính autoplay vào thẻ video dựa trên biến phạm vi is_autoplay.có điều kiện thêm thuộc tính phần tử trong angular.js
Tôi đã tìm kiếm tất cả qua internet, nhưng tôi không thể tìm thấy đoạn trích chính xác mà tôi muốn.
Tôi đã thử làm theo nhưng không có cách nào trong số đó hoạt động.
<video autoplay="{{is_autoplay ? 'true' : 'false'}}">
...
<video ng-attr-autoplay="{is_autoplay}">
...
Có người thậm chí còn gợi ý sau
<video {{is_autoplay ? "autoplay" : ""}}>
...
Sau đây giải quyết được vấn đề của tôi.
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);
}
}
);
}
};
});
Bất kỳ ai cũng có thể sử dụng chỉ thị này để thêm/xóa thuộc tính có điều kiện.
Usage
<video width="100%" height="100%" controls attronoff data-attr-on="{{is_autoplay}}" data-attr-name="autoplay">
...
Tôi biết nó là muộn, nhưng có thể hữu ích. Đối với góc 1,3+ và thuộc tính không có giá trị (ví dụ: tự động phát hoặc yêu cầu), bạn có thể sử dụng 'không xác định': ''. Nó bị xóa vì ng-attr- có tính năng allOrNothing của việc xóa thuộc tính nếu biểu thức mang lại không xác định. –