在angularJS中::的意思是什么

时间:2015-12-10 11:59:04

标签: javascript html angularjs web

我是angularJS的新手。请问有人可以帮帮我吗? 我见过像

这样的语法
<a href={{ ::something}}>some other thing</a>

什么是双冒号?如果将其移除会发生什么?

3 个答案:

答案 0 :(得分:71)

::用于一次性绑定。一旦表达稳定,即在第一次消化后,表达式将停止重新计算。

因此,对something所做的任何更新都不会显示。

答案 1 :(得分:5)

它曾用于将控制器中的模型绑定到仅查看。如果从视图中更改此设置,它将不会更新您的控制器型号。这意味着它用于实现一次性绑定。

示例

&#13;
&#13;
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;
&#13;
&#13;

当我们点击更改标签链接时更改标签含义时,它将仅更新第二个文本,即不使用::运算符绑定。

阅读本文了解更多详情One way binding

答案 2 :(得分:2)

这意味着范围项&#34;某事&#34;有一个时间绑定与它相关联。因此,如果控制器中的项目发生变化,则不会应用更改。

This is a good article关于观察者和一次性绑定