簡體   English   中英

將元素傳遞給Angular指令

[英]Pass element to Angular directive

我有一個類似於https://github.com/angular-ui/bootstrap/blob/master/src/modal/modal.js的簡單彈出式指令

我需要將彈出窗口放在接近啟動打開的元素的位置。

什么是最好的方法呢? 用ng-click =“open($ event)”捕獲啟動器並傳遞給指令工作? (這是捕獲http://jsfiddle.net/Amnesiac/5z5Qz/3/的這個元素的樣本)

$scope.open= function (e) {
   var elem = angular.element(e.srcElement);
}

然后我如何將此angular.element(e.srcElement)傳遞給指令? (然后指令將根據傳遞的dom元素的位置進行一些計算並重新定位彈出窗口)

像任何其他范圍屬性一樣傳遞它,例如, modal el="clickedElement"

<button id="myId" ng-class="{'blueBg': blueBg}" ng-click="hi($event)">click me</button> 
<div modal el="clickedElement"></div>

angular.module('Test',[])
.controller('Foo', function ($scope, $element) {
    $scope.blueBg = false;
    $scope.hi = function (ev) {
       $scope.blueBg = true;
       $scope.clickedElement = angular.element(ev.srcElement);
    }
})
.directive('modal', function() {
    return {
        link: function(scope, element, attrs) {
            scope.$watch(attrs.el, function(value) {
                if(value !== undefined) {
                    console.log('element=',value);
...

小提琴

暫無
暫無

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

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