簡體   English   中英

Angular ng-init將元素傳遞給范圍

[英]Angular ng-init pass element to scope

有沒有辦法獲取我的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執行此操作?

你的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對象。

不要這樣做。

正如@CodeHater所說,在指令中處理DOM操作是比使用元素控制器更好的解決方案。

我也在尋找類似的東西,但最后我創建了一個添加到子div元素的指令。 在指令代碼塊中,我得到了元素對象,並將所有與事件相關的函數和其他指令放在那里。 另外,我將元素添加到$ scope對象,這有助於我在其他地方使用此對象,並且無需在每次需要時都找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM