官方Angular 文档用于编译 https://docs.angularjs.org/api/ng/service/%24compile讨论单向绑定类型<
.
在角社区, I see @
通常称为“单向绑定类型”。
是什么赋予了?这@
在我看来,这并不是真正的单向绑定,因为它只是评估表达式并设置一个字符串。这<
似乎更类似于=
例外的是绑定只是单向的。
我的猜测是<
最近引入了这可以解释为什么@
过去称为单向绑定类型。 (哪个它kind of是,但不完全是)
希望有更多 Angular 经验的人可以为我解决问题! :)
Update: @aaronmallen 评论道 https://stackoverflow.com/questions/38777266/one-way-binding-in-angular-directives?noredirect=1#comment64928083_38777266并证实<
最近添加了(Angular 1.5)。
为了进一步澄清事情,我应该什么时候使用@
vs <
?
在 Angular 1.x 中,有两种方法可以进行单向绑定,具体取决于您使用的版本
<1.5
@绑定将来自父级的文字值绑定到隔离范围中。所以你可以这样做:
<cat name="Fluffy" age="12"></cat>
您可以将其视为一种方式绑定。因为您正在绑定文字,所以数据不会返回,因为没有任何内容可以分配给它。
在旧版本的 Angular (@加卷发{{}}
当我们想要单向绑定时。 Curlies 在传输之前将表达式转换为文字,因此我们传入文字:
<cat name="{{$ctrl.catName}}" age="{{$ctrl.catAge}}"></cat>
因为花括号表达式被计算为文字,然后作为文字传递给指令。数据无法再次返回,因为花括号已被评估为字符串,因此没有任何数据可供分配。
您仍然会发现许多教程中都使用这种方法。它现在已经过时了,你应该避免它。
1.5 +
在 1.5 中我们得到了<
捆绑。这让我们能够以一种没有卷发的方式进行装订。我们现在可以这样做:
<cat name="$ctrl.catName" age="$ctrl.catAge"></cat>
Unlike =
绑定时,如果隔离上的值发生更改,则更改不会反映在父级中。效果是一样的,但语法更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)