javascript - AngularJS 中值 ="{{ var }} "和 [value] ="var"之间的差异

标签 javascript angularjs angular2-directives

有人可以向我解释一下两者之间的区别吗

value="{{var}}" vs [value]="var"

谢谢。

最佳答案

根据https://angular.io/guide/template-syntax#a-new-mental-model

2种括号类型代表2种不同的数据流方向。

[target]="expression"大声朗读为“绑定(bind)目标”,(target)="statement"朗读为“目标上”

绑定(bind)目标,将您的 JavaScript 模型绑定(bind)到您的 View 。

在目标上,在 View 更改时向您的 JavaScript 模型引发一个事件。

您可以将它们组合起来创建绑定(bind)目标,这两者都可以实现。

https://angular.io/guide/template-syntax#property-binding-or-interpolation

value="{{var}}"是插值绑定(bind)。它的使用方式与 [attr.value]="var"

相同

有这些细微的差别。

value="{{var}}"或在 html 节点内容中使用 {{}} 只适用于字符串。

事实上,Angular 中存在 {{ }} 意味着他们需要做更多处理模板的工作,但由于这项工作已经沉没,你可以随意使用 {{ }} ,它更有意义并提高可读性,而无需性能受到很大影响。

如果您需要绑定(bind)到非字符串属性,则需要使用属性绑定(bind)语法。

我建议坚持使用属性绑定(bind)语法[value] = "var",因为它允许您使用 2 个不同的方向绑定(bind),而无需太多的心理开销。

关于javascript - AngularJS 中值 ="{{ var }} "和 [value] ="var"之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579028/

相关文章:

javascript - 桌面小部件使用的 $.getJSON 不从浏览器请求 URL

javascript - 在react中加载jquery依赖库

javascript - 对包装 slickgrid 的 Angular Directive(指令)进行单元测试

javascript - Angular 2 : what expressions can we interpolate in template

angular - angular指令选择器与tslint的冲突

javascript - 在 Angular 2 中使用普通 js 代码 (angular-cli)

javascript - 为什么我用javascript innerHTML调用我的图片不显示?

javascript - LiveValidation .remove 不工作

javascript - AngularJS 动态添加输入字段并保持对每个字段的引用

javascript - Angular 指令中无限嵌套的 ng-repeat