Bry*_*son 6 javascript angularjs
在一个指令中,我想在我执行某个函数之前检查一个元素是否有一个属性.但是我在jqLite文档中没有看到任何内容.
例如:
.directive('noReadonly', function() {
return {
link: function($scope, $element, $attr, ctrl) {
$element.on('focus', function() {
if ($element.hasAttribute('readonly'))
$element.removeAttr('readonly');
});
},
}
})
Run Code Online (Sandbox Code Playgroud)
$attr 是一个具有属性的对象,因此您可以像平常一样使用它:
if($attr.hasOwnProperty("readonly"))
Run Code Online (Sandbox Code Playgroud)
如评论中所述,这将检查该属性是否存在.这个元素会产生真正的反应:
<input name="test" readonly>
Run Code Online (Sandbox Code Playgroud)
如果您还要检查truthy值,可以扩展逻辑:
if($attr.hasOwnProperty("readonly") && $attr.readonly) {}
Run Code Online (Sandbox Code Playgroud)
请注意,属性值被解析为字符串,因此$attr.readonlyequals "true"(String)而不是true(Boolean).
| 归档时间: |
|
| 查看次数: |
6734 次 |
| 最近记录: |