有没有办法获取我的ng-init当前绑定的当前元素?
例如:
<div ng-init="doSomething($element)"></div>
我相信有一种方法可以实现ng-click,但是我无法使用ng-init这样做:
<div ng-click="doSomething($event)"></div>
控制器:
$scope.doSomething = function(e){
var element = angular.element(e.srcElement);
}
如何使用ng-init进行此操作?
答案 0 :(得分:8)
您的HTML:
<div ng-app='app' ng-controller="Ctrl">
<div my-dir></div>
</div>
您的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);
};
});
从上面,element
将是您的DOM对象。
答案 1 :(得分:2)
不要这样做。
正如@CodeHater所说,在指令中处理DOM操作比使用元素控制器更好。
答案 2 :(得分:1)
我也在寻找类似的东西,但最后我创建了一个添加到子div元素的指令。在指令代码块中,我得到了元素对象,并将所有与事件相关的函数和其他指令放在那里。另外,我将元素添加到$ scope对象,这有助于我在其他地方使用此对象,并且无需在每次需要时都找到它。