Angularjs ng-click: 이 데이터를 얻는 방법
리스트에 각이 진 아이템이 있다고 칩시다.ng-click이벤트입니다.
<a data-id='102' ng-click='delete()'>Delete</a>
다음과 같은 경우 데이터/정보를 입수하려면 어떻게 해야 합니까?this그러면?
$scope.delete = function() {
var id = $(this).attr('data-id');
console.log(id); // I want to get 102 as the result
if (confirm('Are you sure to delete?')) {
$('#contactsGrid tr[data-id="' + id + '"]').hide('slow');
}
};
올바른 해결책은 ID를 다음과 같이 삭제 함수에 매개 변수로 전달하는 것입니다.
<a data-id='102' ng-click='delete(102)'>Delete</a>
그리고나서
$scope.delete = function(id) {
console.log(id); // I want to get 102 as the result
if (confirm('Are you sure to delete?')) {
$('#contactsGrid tr[data-id="' + id + '"]').hide('slow');
}
};
이것은 행해지지 않고, 단지 증명하기 위해서입니다.
안에서.ng-click이벤트를 입수하려면$event,그렇게
<a data-id='102' ng-click='delete($event)'>Delete</a>
그리고나서
$scope.delete = function (e) {
var id = $(e.target).data('id');
console.log(id); // I want to get 102 as the result
};
데모: 바이올린
클릭된 링크 태그 속성에 액세스하려면
jQuery에서는
<a class='test' data-id='102' ng-click='delete(102)'>Delete</a>
위의 링크를 클릭하면 다음과 같이 처리됩니다.
$('.test').click(function(){
console.log($(this).attr('data-id'));
});
jQuery 데모코드: findle
Angularjs에서는
<a class='test' data-id='102' ng-click='delete($event)'>Delete</a>
위의 링크를 클릭하면 다음과 같이 처리됩니다.
$scope.delete = function (e) {
console.log($(e.currentTarget).attr("data-id"));
}
Angularjs 데모코드: findle
또한 다음을 사용하여 각도로 Jquery에 대한 이벤트 데이터에 액세스할 수 있습니다.
$scope.myClickedEvent = function(clickEvent) {
$scope.clickEvent = simpleKeys(clickEvent);
angular.element(clickEvent.currentTarget);
console.log(angular.element(clickEvent.currentTarget).text());
/*
* return a copy of an object with only non-object keys
* we need this to avoid circular references
*/
function simpleKeys (original) {
return Object.keys(original).reduce(function (obj, key) {
obj[key] = typeof original[key] === 'object' ? '{ ... }' : original[key];
return obj;
}, {});
}
};
클릭된 요소에는 다음과 같은 ng-click이 포함되어 있어야 합니다.
ng-click="myClickedEvent($event)"
다른 이유로 아직 요소에 액세스 할 필요가 있는 경우는, 다음과 같이 합니다.
<span ng-click="selectText($event)"></span>
컨트롤러에 있습니다.
$scope.selectText = function(event) {
var element = event.currentTarget; // returns the span DOM Element
// Now you can access its dataset just like in plain old JS
// In my case it was for selecting the content of a tag on click anywhere on the tag
};
언급URL : https://stackoverflow.com/questions/20814420/angularjs-ng-click-how-to-get-this-data
'source' 카테고리의 다른 글
| 앵귤러에 모의 주입JS 서비스 (0) | 2023.03.21 |
|---|---|
| RESTful 원칙을 위반하지 않고 Angular에서 인증 및 인가를 위한 베스트 프랙티스 (0) | 2023.03.21 |
| Jackson의 @JsonSubTypes는 다형성 디시리얼라이제이션에 여전히 필요한가요? (0) | 2023.03.21 |
| Angular에서 변경된 입력 필드를 표시하는 방법JS (0) | 2023.03.21 |
| 설정 변수를 지정합니다.php 단, 바닥글에는 표시되지 않습니다.php (0) | 2023.03.21 |