[英]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.