我是angularJS的新手。请问有人可以帮帮我吗? 我见过像
这样的语法<a href={{ ::something}}>some other thing</a>
什么是双冒号?如果将其移除会发生什么?
答案 0 :(得分:71)
::
用于一次性绑定。一旦表达稳定,即在第一次消化后,表达式将停止重新计算。
因此,对something
所做的任何更新都不会显示。
答案 1 :(得分:5)
它曾用于将控制器中的模型绑定到仅查看。如果从视图中更改此设置,它将不会更新您的控制器型号。这意味着它用于实现一次性绑定。
示例强>
angular.module("myApp", []).controller('ctrl', ['$scope', function($scope) {
$scope.label = 'Some text';
}]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
<html ng-app="myApp">
<body ng-controller="ctrl">
<div>{{::label}}</div> // this will print `Some text` on load
<div>{{label}}</div> // this will too print `Some text` on load
<br />
<button ng-click="label='IUpdateLabelFromHtml'">Change label</button>
</body>
</html>
&#13;
当我们点击更改标签链接时更改标签含义时,它将仅更新第二个文本,即不使用::
运算符绑定。
阅读本文了解更多详情One way binding
答案 2 :(得分:2)
这意味着范围项&#34;某事&#34;有一个时间绑定与它相关联。因此,如果控制器中的项目发生变化,则不会应用更改。
This is a good article关于观察者和一次性绑定