angularjs怎么传递this对象

如题所述

angularjs中的this与$scope的作用基本一样。

所以,并不能像在jq或者js中那样传递。
得想其它办法。

如果是循环,如果考虑把$index传递到控制器中去,模版中每个循环加个变量:"test{{$index}}",然后控制器中通过控制test+$index这个变量的值来达到控制对应dom元素的目的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-19

js中传的作用域有三种方法。

    call。function.call(context,arg1,arg2,arg3,...)。function为执行函数,context为此函数的上下文即你这里需要传入的this。arg1,arg2,arg3...是执行此函数需要的参数。

    apply。function.apply(context,[arg1,arg2,arg3,...])和call类似,唯一区别为只支持两个参数,第二个参数为执行此函数需要的参数数组。

    bind。function.bind(context,arg1,arg2,arg3,...)。此函数和call类似,唯一区别为该函数不会立刻执行,而call和apply是立刻执行的。

第2个回答  2017-08-02
可以通过指令传入参数$event,然后函数接受ev,当你点击节点的时候,通过获取事件源对象(ev.target)来当做this。具体代码如下:

<body ng-controller="MyCtrl">
<div class="div1" ng-click="clickFn($event)"></div>

<script src="js/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl',['$scope','$rootScope',function($scope,$rootScope){
$scope.clickFn = function(ev){
console.log(ev.target);
};
}]);
</script>
</body>
第3个回答  2016-04-09
你这个是作用域的问题吧,interval里面的this是window,不是controller下面的那个this.num,你这样执行后一个是interval域里没有个num,切永远会等于 NaN本回答被提问者和网友采纳
第4个回答  2016-04-19
angular也是javascript啊 像javascript一样传递就好
相似回答