각도로 앵커 태그에 클릭 부착
닻 태그(ajax에서 오는)에 클릭 이벤트를 첨부하고 기본 리디렉션을 차단하려고 합니다.어떻게 각도를 맞추면 됩니까?
<ul>
<li><a href="/abc"><p>abc</p></a></li>
<li><a href="/abc1"><p>abc1</p></a></li>
<li><a href="/abc2"><p>abc2</p></a></li>
<li><a href="/abc3"><p>abc3</p></a></li>
</ul>
ints 파일:
constructor(elementRef: ElementRef, renderer: Renderer) {
this.listenFunc = renderer.listen(elementRef.nativeElement, 'click', (event) => {
event.preventDefault();
let target = event.target || event.srcElement || event.currentTarget;
console.log(target);
});
}
이벤트가 모든 요소에 첨부됩니다. 앵커 태그로만 제한하려면 어떻게 해야 합니까?
모든 도움은 감사히 받겠습니다.
를 사용할 수 있습니다(이는 다음과 같습니다).href
각 의 경우, 와 같이 이벤트를 각 2+)우,합니다.
<a [routerLink]="" (click)="onGoToPage2()">Go to page</a>
제 생각에 당신은 앵글이 당신을 위해 일하지 못하게 하는 것 같습니다.
각도 2에서:
- 합니다를 합니다.
href
꼬리표를 던지다<a>
페이지 전달을 방지합니다. - 그러면 평소의 각도 클릭 속성과 기능만 추가하면 됩니다.
style: "cursor: pointer"
를 시킬 수 .[routerLink]="[]"
인용문 안의 대괄호가 중요합니다.메소드 등에서 기본 작업을 방지할 필요가 없습니다.이것은 "!!" 메서드와 유사하지만 메서드의 시작에 불명확한 구문을 추가할 필요가 없습니다.
따라서 전체 앵커 태그는 다음과 같습니다.
<a [routerLink]="[]" (click)="clickMethod()">Your Link</a>
여러분의 방법이 정확하게 작동하는지 확인해보세요. 그렇지 않으면 여러분은 대신 페이지를 새로 고치게 되고 실제로 무엇이 잘못된 것인지에 대해 매우 혼란스러워 질 수 있습니다!
당신은 단지 추가하기만 하면 됩니다.!!
전전:(click)="!!onGoToPage2()"
.!!
메서드 반환을 부울로 변환하여 기본 작업이 발생하지 않도록 합니다.void
이것이 가 될 것입니다.false
.
로드하는 데 , 에서 이 수 .routerlink="."
:
<a routerLink="." (click)="myFunction()">My Function</a>
https://material.angular.io/components/button/examples 버튼의 Angular Material 문서에서 영감을 받았습니다.
사용을 시작한 업데이트routerLink=""
각 각 12로 .그 사실을 알고 있었습니다.routerLink="."
부모 페이지로 전송하고 있었습니다.
<a href="#" (click)="onGoToPage2()">Go to page 2</a>
다음과 같은 것을 시도해 볼 수 있습니다.
<a href="javascript: void(0);" (click)="method()">
오어
<a href="javascript: void(0);" [routerLink]="['/abc']">
<a href="javascript:void(0);" (click)="onGoToPage2()">Go to Page 2</a>
저는 Angular 5에서 이 문제를 접했는데 여전히 링크를 따라가고 있습니다.다로 이었습니다.false
페이지가 새로 고쳐지지 않도록 하려면 다음과 같이 하십시오.
html
<a href="" (click)="openChangePasswordForm()">Change expired password</a>
ts
openChangePasswordForm(): boolean {
console.log("openChangePasswordForm called!");
return false;
}
이를 성공적으로 구현할 수 있었습니다.
<a [routerLink]="['/login']">abc</a>
저는 효과적인 해결책을 얻기 위해 몇 개의 답을 조합해야 했습니다.
이 솔루션은 다음과 같습니다.
- 적절한 'a' 스타일로 링크 스타일을 지정합니다.
- 원하는 함수를 호출합니다.
http://mySite/#로 이동하지 않음
<a href="#" (클릭)="!!!함수ToCall()">링크 </a>
사용가능routerLink
의 대안인.href
각2의 경우** 쓰임routerLink
html 의 아래와 같이
<a routerLink="/dashboard">My Link</a>
그리고 당신의 것을 등록해야 합니다.routerLink
modules.ts 또는 router.ts에서 이와 같이
const routes: Routes = [
{ path: 'dashboard', component: DashboardComponent }
]
앵커 태그와 href를 깨끗하게 처리하고 앵커 스타일링을 유지하는 방법:
html:
패스 인 더$event
위에click
<a href (click)="doSomething($event)">Do something</a>
활자 스크립트:
이벤트 가져오기:MouseEvent
부름e.preventDefault()
doSomething(e: MouseEvent): void {
e.preventDefault();
//Do something
}
스타일은 그대로 유지되며 기본 브라우저 앵커 처리는 수행되지 않습니다.
이 질문은 엄밀히 말하면 이미 답을 얻었지만, 여기에 있는 모든 답은 중요한 것을 잊어버렸다고 생각합니다. 클릭 핸들러를 추가하는 것만으로는 충분하지 않습니다.내게 필요한 이유로 키보드만 사용하는 사용자도 링크를 사용할 수 있습니다.일반적으로 요소에 초점을 맞추는 동안 Enter를 누르면 요소를 클릭하는 것과 동일한 효과가 발생합니다.우리가 하는 동안 역할도 정할 수 있을 겁니다.링크가 실제로 버튼으로 사용되는 경우 역할="버튼"을 설정해야 합니다. 이렇게 하면 화면 판독기가 탐색 링크가 아니라 버튼으로 알립니다.원래 문제의 경우:여기 있는 거의 모든 답변이 제게 맞는 것 같지만, 저는 라우터 링크가 비어 있는 것을 선택했습니다. 저는 내비게이션을 원하지 않는다는 것을 의미론적으로 분명히 한다고 생각합니다.다른 솔루션은 나중에 혼란을 초래할 수 있습니다(누군가가 1년 안에 코드를 읽었다고 가정해 보겠습니다).
<a [routerLink]="" (click)="doSomething()" (keyup.enter)="doSomething()" role="button" tabindex="0">your link</a>
효과가 있었습니다.
<a class="btn-link" (click)="clickedFunction()">Click me</a>
위의 답변을 모두 검토해 보았습니다. 예상대로 작동하려면 두 가지만 실행하면 됩니다.
단계 - 1 : HTML 페이지의 앵커 태그에 (클릭) 이벤트를 추가하고 외부 링크로 이동할 때 명시적으로 href=" "를 제거하고 대신 routerLink = "를 사용하여 보기를 탐색합니다.
<ul>
<li><a routerLink="" (click)="hitAnchor1($event)"><p>Click One</p></a></li>
<li><a routerLink="" (click)="hitAnchor2($event)"><p>Click Two</p></a></li>
</ul>
Step - 2 : 위의 함수를 호출하여 클릭 이벤트를 .ts 파일의 닻 태그(ajax에서 오는 것)에 첨부합니다.
hitAnchor1(e){
console.log("Events", e);
alert("You have clicked the anchor-1 tag");
}
hitAnchor2(e){
console.log("Events", e);
alert("You have clicked the anchor-2 tag");
}
그게 전부입니다.예상했던 대로입니다.아래 예제를 만들었습니다. 보실 수 있습니다:-
https://stackblitz.com/edit/angular-yn6q6t
언급URL : https://stackoverflow.com/questions/41458842/attaching-click-to-anchor-tag-in-angular
'programing' 카테고리의 다른 글
Wordpress Woocommerce 제품을 카트 새로 고침 페이지에 추가하고 있습니다. (0) | 2023.10.04 |
---|---|
Submit 버튼을 클릭한 후 비활성화하고 몇 초 후 다시 활성화합니다. (0) | 2023.10.04 |
여러 변수 ID에 대해 여러 개의 정적 값 삽입 (0) | 2023.10.04 |
SQL Server 데이터베이스 복원 오류 (0) | 2023.10.04 |
"text" 속성을 사용하여 파일을 정규화한 후 git가 마스터 브랜치를 체크아웃하고 캐리지 리턴을 제거하려면 어떻게 해야 합니까? (0) | 2023.10.04 |