programing

ng-click 함수의 요소 속성을 angularjs에서 가져오는 중

copyandpastes 2023. 3. 27. 22:10
반응형

ng-click 함수의 요소 속성을 angularjs에서 가져오는 중

아래와 같은 스판 태그가 있어 클릭하면 컨트롤러의 함수가 호출됩니다.

HTML

<div class="row" ng-repeat="event in events">
    <div class="col-lg-1 text-center">
        <span class="glyphicon glyphicon-trash" data={{event.id}} ng-click="deleteEvent()">
        </span>
    </div>
</div>

컨트롤러

$scope.deleteEvent=function(){
    console.log(this);
}

컨트롤러 함수의 데이터 속성의 값을 얻어야 합니다.이 키워드와 $event를 사용하려고 했지만 둘 다 효과가 없었습니다.

제발 도와주세요.

좀 더 간단하게,$event에 반대하다.ng-click이벤트 속성에 액세스합니다.예를 들어 다음과 같습니다.

<a ng-click="clickEvent($event)" class="exampleClass" id="exampleID" data="exampleData" href="">Click Me</a>

사용자 내clickEvent() = function(obj) {}액세스 할 수 있는 기능data값은 다음과 같습니다.

var dataValue = obj.target.attributes.data.value;

어느쪽이든exampleData.

여기 완전한 jsFiddle이 있습니다.

ng-click 함수에 직접 전달합니다.

<div class="col-lg-1 text-center">
    <span class="glyphicon glyphicon-trash" data="{{event.id}}"
          ng-click="deleteEvent(event.id)"></span>
</div>

그런 다음 핸들러에서 사용할 수 있습니다.

$scope.deleteEvent=function(idPassedFromNgClick){
    console.log(idPassedFromNgClick);
}

여기 예가 있습니다.

Brett DeWoody 답변 추가: (지금 갱신)

var dataValue = obj.srcElement.attributes.data.nodeValue;

IE(9+) 및 Chrome에서는 정상적으로 동작하지만 Firefox는 srcElement 속성을 인식하지 않습니다.검색 결과:

var dataValue = obj.currentTarget.attributes.data.nodeValue;

IE, Chrome, FF에서 작동하며 Safari를 테스트하지 않았습니다.

언급URL : https://stackoverflow.com/questions/18029261/getting-attribute-of-element-in-ng-click-function-in-angularjs

반응형