zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    log4js日志
    webservice随记
    easyui+nodejs+sqlserver增删改查实现
    jsp、servlet笔记
    mysql随笔
    ssh登录实现
    UML和模式应用1: 面向对象的分析与设计
    Linux mmc framework2:基本组件之mmc
    Linux MMC framework2:基本组件之core
    Linux mmc framework2:基本组件之queue
  • 原文地址:https://www.cnblogs.com/lsr-flying/p/6536142.html
Copyright © 2011-2022 走看看