Angular ng-init将元素传递给范围

Har*_*mpo 23 angularjs

有没有办法获取我的ng-init当前绑定的当前元素?

例如:

<div ng-init="doSomething($element)"></div>
Run Code Online (Sandbox Code Playgroud)

我相信有一种方法可以实现ng-click,但是我无法使用ng-init这样做:

<div ng-click="doSomething($event)"></div>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.doSomething = function(e){ 
    var element = angular.element(e.srcElement); 
}
Run Code Online (Sandbox Code Playgroud)

我如何使用ng-init执行此操作?

GMs*_*soF 8

你的HTML:

<div ng-app='app' ng-controller="Ctrl">
    <div my-dir></div>
</div>
Run Code Online (Sandbox Code Playgroud)

你的Javascript:

var app = angular.module('app', [], function () {});

app.controller('Ctrl', function ($scope) {
    $scope.doSomething = function (e) {
        alert(e);
    };
});

app.directive('myDir', function () {
    return function (scope, element, attrs) {
        scope.doSomething(element);
    };
});
Run Code Online (Sandbox Code Playgroud)

从上面来看,element将是你的DOM对象.


Pab*_*blo 1

不要这样做。

正如 @CodeHater 所说,在指令中处理 DOM 操作是比将控制器与元素结合起来更好的解决方案。