gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:10:05 24 4
gpt4 key购买 nike

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

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

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

理想情况下,它将直接绑定(bind)到作用域,以便可以在模板中使用。但是,绑定(bind)变量的值是未定义&也是如此只读= 双向绑定(bind)。

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

最佳答案

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

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

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

关于javascript - 检查 AngularJs 指令中是否存在属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25811734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com