Angularjs中this的指向


在Angularjs中this的指當前的scope。

 

<a class=" ng-click="remove(this)"></a>

<!--this指的是a標簽作用域下的scope-->

<script>

app.controller('myCtrl',function($scope){
      $scope.remove = function (scope) {
        scope.remove();
      };
});
</script>

 

來自知乎的解釋,https://www.zhihu.com/question/35780175

作者:Stark偉
鏈接:https://www.zhihu.com/question/35780175/answer/64416775
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

比如你定義了一個
<div ng-click="change()">{{value}}</div> 
然后你想點擊這個div的時候改變這個div的內容,那么在相應的controller中應該這樣寫:
$scope.change = function(){ this.value = 'new value'; //等價於$scope.value = 'new value' } 

這種this的特性在ng-repeat中非常好用。
比如你有一堆ng-repeat渲染出來的東西:
<div ng-click="change()" ng-repeat="item in items">{{item.value}}</div> 

然后你想給他們綁定一個統一的函數,點擊之后 只會把自己的值改變,此時 this就是指向當前的子scope:
$scope.change = function(){ this.item.value = 'new value'; //由於是ng-repeat出來的,所以這里this指向的scope是上面那個案例中$scope的子集。 //即this.$parent === $scope; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM