检查 AngularJs 指令中属性是否存在

2024-03-26

可以检查给定属性是否存在于指令中,理想情况下使用隔离范围,或者在最坏的情况下使用属性对象。

指令看起来像这样<project status></project>,我想有条件地渲染状态图标,但前提是状态属性存在。

return {
  restrict: 'AE',
  scope: {
    status: '@'
  },
  link: function(scope, element, attrs) {
    scope.status === 'undefined'
  }
}

理想情况下,它将直接绑定到范围,以便可以在模板中使用它。然而,绑定变量的值为不明确的。同样适用于& 只读 and = two-way绑定。

我知道通过添加一个即可轻松解决<project status='true'></project>,但对于我经常使用的指令,我宁愿不必这样做。 (XHTML 有效性不是问题)。


执行此操作的方法是检查链接函数的 attrs 参数中是否存在属性,并将其分配给指令隔离范围内的变量。

scope:{},
link: function(scope, element, attrs){
  scope.status = 'status' in attrs;
},

这应该可以工作,而无需在链接函数中使用 if 语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 AngularJs 指令中属性是否存在 的相关文章

随机推荐