我如何有条件地在 angular 中的模板中添加属性

How can i conditionally add attribute in template in angular

在我的指令模板中我有这个

<span sortable draggable></span>

现在我想根据一些范围变量有条件地添加 sortabledraggale

当我尝试这个时

<span ng-attr-sortable="false">

基本就变成了

<span sortable="false"></span> 仍然可以排序

如果表达式为假,我希望完全删除 sortable

<span> </span>

应该与 elem.removeAttr('sortable') 一起工作。其中 elem 是 jQuery 精简元素,您可以将其作为 link: function (scope, elem) { ... } 传入,或使用 elem.find(...) 通过标签名称定位子元素。

但您可能希望在 link: function () {...} 中而不是在模板中进行设置。您始终可以制作自己的过滤器来删除您随后可以在模板中使用的属性。

参见:https://docs.angularjs.org/api/ng/function/angular.element(查找 removeAttr)。