等同于AngularJS中的hasAttribute()

AngularJS equivalent for hasAttribute()?

本文关键字:hasAttribute 中的 AngularJS 等同于      更新时间:2023-09-26

在指令中,我想在对其执行某些函数之前检查元素是否具有属性。但我在jqLite文档中没有看到任何相关内容。

。:

.directive('noReadonly', function() {
    return {
      link: function($scope, $element, $attr, ctrl) {
        $element.on('focus', function() {
          if ($element.hasAttribute('readonly'))
          $element.removeAttr('readonly');
        });
      },
    }
  })

$attr是一个具有属性的对象,因此您可以像正常一样使用它:

if($attr.hasOwnProperty("readonly"))

正如在注释中提到的,这将检查属性是否存在。该元素将导致一个真实的响应:

<input name="test" readonly>

如果你还想检查真值,你可以扩展逻辑:

if($attr.hasOwnProperty("readonly") && $attr.readonly) {}

注意属性值被解析为字符串,所以$attr.readonly等于"true"(字符串)而不是true(布尔)。

if ($attr.readonly) {
   ...
}
else {
   //doesn't have it.
}