我是Angular的新手,看到其他人用这段代码写的文件:
{{ ::set.text }}
这与
有什么关系?{{ set.text }}
两者都加载到页面上,我无法区分。
答案 0 :(得分:4)
{{ :: expression }}
表示绑定一次。这个将等待表达式给出结果并在模板中显示。如果表达式的值稍后更改,则视图不会。它将始终显示它解析的第一个值。
{{ expression }}
将评估每个摘要的表达式。如果表达式的值发生更改,则视图将使用新值进行更新。
下面的示例显示了差异。在加载应用程序时,未设置变量 - 两个段落都是空的。只要您开始键入值更改并更新视图。但是当你输入你的第二个字符时,只有第二个段落会更新,因为已经设置了一次性绑定并且不再观察变量的变化。
angular.module('myApp', []).controller('myController', function(){});

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<div ng-app="myApp" ng-controller="myController">
<p>Bind once: {{ :: variable }}</p>
<p>Normal binding: {{ variable }}</p>
<div>
<span>Write to change value of variable:</span>
<input type="text" ng-model="variable" />
</div>
<div>
&#13;