Angularjs中this的指向

在Angularjs中this的指当前的scope。html

 

<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/35780175app

做者: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; }
相关文章
相关标签/搜索