2015-05-11 1 views
1

Ну у меня есть нг повторять примерно так:Получение значения атрибута в нг-повторе из директивы

<div ng-repeat="X in Xs" ><a id="X.id" my-directive>Blabla {{X.Number}}</a></div> 

и у меня есть директива, как это:

module.directive('myDirective', ['$document', function ($document) { 
return { 
    replace : true, 
    link: function (scope, element, attr) { 

    element.on('mousedown', function (event) { 
     // Prevent default dragging of selected content 
     event.preventDefault(); 
     startX = event.pageX - x; 
     startY = event.pageY - y; 
     $document.on('mouseup', mouseup); 
    }); 

    function mouseup() { 
     $document.off('mouseup', mouseup); 
     console.log(attr.id); 
     scope.DeleteAlert(1); //Function to delete an element from Scope table 
    } 
} 
}; 
}]); 

И на самом деле я не могу получить значение «id», и он возвращает «X.id» !!

Так как я могу получить значение моего атрибута?

Я хочу получить идентификатор, чтобы передать его как аргумент моей функции, чтобы удалить интересующий div. Теперь я передаю «1» моей функции, и это всегда удаляет первый элемент моего списка.

Может ли кто-нибудь помочь мне разобраться в этом!

UPDATE

Вот Fiddle для испытания

ответ

2

Так как вы используете его в ИО, завернуть его в {{так же, как вы делаете в содержании:

<div id="{{Fire.id}}" my-directive> 

Working fiddle

+0

Как магия, это работает! Я не знаю, почему иногда мы должны использовать их без {{и иногда нам нужно их обернуть {{. Можете ли вы объяснить это мне, пожалуйста? – Ayyoub

+1

@Ayyoub Для * most * из команды с префиксом 'ng' (например, ng-href является исключением) вам не нужно использовать двойные скобки' {{}} ' – m0meni

+0

И для ng-click, например, когда i хотите вызвать функцию, я не использую их ни ng-click = "myFunction (Fire.id)", и это работа, но обернуть ее между скобками не работает – Ayyoub

Смежные вопросы