gpt4 book ai didi

javascript - 有没有办法为隔离范围别名提供默认值?

转载 作者:行者123 更新时间:2023-12-03 12:54:47 24 4
gpt4 key购买 nike

假设我的 directive 中有以下内容定义:

scope: {
prop1: '@'
}

如果指令没有 prop1 属性,有没有办法让 prop1 获得默认值?当然,我可以检查它是否是我自己定义的并设置它,但是 the property isn't always set when you would expect .我只是想知道我在文档中是否遗漏了任何语法,或者是否有一种很好的标准方法来做到这一点。谢谢。

最佳答案

这取决于您要分配的默认值。如果您想默认为父范围内的名称,请在指令的 compile 中设置默认属性值。功能将起作用:

编译:函数(元素,属性){
如果(attrs.person == 未定义){
attrs.$set("person", "person");
}
...

如果您希望指令提供默认值,它会变得有点棘手,因为 Angular 不会让您分配给隔离范围内的别名(您将从试图传播的观察者那里获得“不可分配的模型表达式”异常分配给隔离的父范围)。但是,您可以通过将属性标记为可选来防止这种情况发生(这意味着当属性被省略时,Angular 不会注册监听器)。

范围: {
人:“=?”
},
链接:功能(范围,元素,属性){
if (scope.person == undefined) {
scope.person = "鲍勃";
}
...
}

关于javascript - 有没有办法为隔离范围别名提供默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646380/

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