href는 Angular.js에서 ng-click을 덮어씁니다.
href 아트리뷰트와 ng-click 아트리뷰트가 모두 정의되어 있는 경우:
<a href="#" ng-click="logout()">Sign out</a>
href클릭하다
ng-click의 우선순위를 높일 방법을 찾고 있습니다.
href트위터 부트스트랩
의 이 예는 .href조차 하지 : 자자문 without without without without without without without without without without without without without without without without without without without without without.
[<a href ng-click="colors.splice($index, 1)">X</a>]
http://docs.angularjs.org/api/ng.directive:select
클릭 이벤트의 기본 동작을 템플릿에서 직접 방지할 수 있습니다.
<a href="#" ng-click="$event.preventDefault();logout()" />
각도 설명서에 따르면
ngClick 및 ngFocus 등의 지시어는 해당 식 범위 내의 $event 객체를 표시합니다.
다음은 다른 해결 방법입니다.
<a href="" ng-click="logout()">Sign out</a>
즉, href 속성에서 #를 삭제하기만 하면 됩니다.
uri가 필요 없다면 버튼 태그를 사용하는 것이 좋습니다.
힌트 하나만 더 주세요.(브라우저 액세스를 지원하기 위해) 실제 URL이 필요한 경우 다음을 수행할 수 있습니다.
템플릿:
<a ng-href="{{link}}" ng-click="$event.preventDefault(); linkClicked(link)">{{link}}</a>
지시:
$scope.linkClicked = function(link){
// your code here
$location.path(link);
};
이와 같이 linkClicked() 내의 코드를 실행한 후 링크로 이동합니다.
각도에서 s는 지시어입니다.따라서 빈칸이 있는 경우href no (없음)href하고 Angular가 호출됩니다.event.preventDefault.
출처:
element.on('click', function(event){
// if we have no href url, then don't navigate anywhere.
if (!element.attr(href)) {
event.preventDefault();
}
});
여기 실종사실을 보여주는 PLNKR이 있습니다.href시나리오입니다.
IE 9 및 Angular에서는 이 기능이 작동했습니다.JS v1.0.7:
<a href="javascript:void(0)" ng-click="logout()">Logout</a>
이 질문에 대한 답변은 매우 많지만 실제 무슨 일이 일어나고 있는지에 대해서는 약간 혼란스러운 것 같습니다.
첫째, 당신의 전제는
"Href는 Angular.js의 ng-click을 덮어씁니다."
실제로 있는 각도로 정의)로 입니다.ng-clickangularx 및 " 1.x"의 click2.에 의해 는 angular 2.x+로 로 이동하도록 ).href속성)을 참조해 주세요.(javascript 이벤트 전파에 대한 자세한 내용은 여기를 참조하십시오.)
이를 회피하려면 이벤트인터페이스의 메서드를 사용하여 이벤트 전파를 취소해야 합니다.
<a href="#" ng-click="$event.preventDefault();logout()" />
(이것은 순수 자바스크립트 기능으로 각도와는 무관합니다)
이것으로 이미 문제가 해결되지만 최적의 해결책은 아닙니다.각도는 MVC 패턴을 올바르게 촉진합니다.이 솔루션에서는 html 템플릿이 javascript 로직과 혼합됩니다.가능한 한 이 문제를 피하고 각 컨트롤러에 논리를 넣어야 합니다.그래서 더 좋은 방법은
<a href="#" ng-click="logout($event)" />
logout() 메서드로 다음 작업을 수행합니다.
logout($event) {
$event.preventDefault();
...
}
이제 클릭 이벤트가 브라우저에 도달하지 않으므로 다음 링크에 의해 지정된 링크를 로드하지 않습니다.href(단, 사용자가 링크를 오른쪽 클릭하여 직접 열면 클릭 이벤트는 발생하지 않습니다.대신, 에 의해 지정된 URL이 직접 로드됩니다.href아트리뷰트)를 참조해 주세요.
브라우저의 방문 링크 색상에 대한 코멘트입니다.다시 말하지만, 이것은 각도와는 아무런 관련이 없습니다.href="..."는 기본적으로 브라우저가 방문한 URL을 가리킵니다.링크 색상은 다릅니다.이것은 CSS:visited Selector에 의해 제어됩니다.이 동작을 덮어쓰도록 css를 변경할 수 있습니다.
a {
color:pink;
}
PS1:
일부 답변은 다음을 사용하는 것이 좋습니다.
<a href .../>
href는 각도 지시어입니다.템플릿이 각도로 처리되면 다음과 같이 변환됩니다.
<a href="" .../>
그 두 가지 방법은 본질적으로 같다.
href 앞에 ng-click 이라고 써주세요.그것은 나에게 효과가 있었다.
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@1.5.0" data-semver="1.5.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script>
angular.module("module",[])
.controller("controller",function($scope){
$scope.func =function(){
console.log("d");
}
})</script>
</head>
<body ng-app="module" ng-controller="controller">
<h1>Hello ..</h1>
<a ng-click="func()" href="someplace.html">Take me there</a>
</body>
</html>
href에서 #를 삭제할 필요는 없다고 생각합니다.Angularjs 1.2.10에 대한 다음 작업
<a href="#/" ng-click="logout()">Logout</a>
다음의 조작도 실행할 수 있습니다.
<div ng-init="myVar = 'www.thesoftdesign'">
<h1>Tutorials</h1>
<p>Go to <a ng-href="{{myVar}}">{{myVar}}</a> to learn!</p>
</div>
나에게 도움이 되는 예를 하나 더 추가할 테니 원하는 대로 변경할 수 있습니다.
컨트롤러 내부에 벨로우 코드를 추가합니다.
$scope.showNumberFct = function(){
alert("Work!!!!");
}
뷰 페이지에 벨로우 코드를 추가합니다.
<a href="" ng-model="showNumber" ng-click="showNumberFct()" ng-init="showNumber = false" >Click Me!!!</a>
로그아웃 기능 자체 내에서 리다이렉트 해보셨나요?예를 들어 로그아웃 함수는 다음과 같습니다.
$scope.logout = function()
{
$scope.userSession = undefined;
window.location = "http://www.yoursite.com/#"
}
그럼 그냥...
<a ng-click="logout()">Sign out</a>
확인 부탁드립니다
<a href="#" ng-click="logout(event)">Logout</a>
$scope.logout = function(event)
{
event.preventDefault();
alert("working..");
}
//for dynamic elements - if you want it in ng-repeat do below code
angular.forEach($scope.data, function(value, key) {
//add new value to object
value.new_url = "your url";
});
<div ng-repeat="row in data"><a ng-href="{{ row.url_content }}"></a></div>
난 이거면 돼
<a href (click)="logout()">
<i class="icon-power-off"></i>
Logout
</a>
<a href="#">
<span ng-click="logout()"> Sign out </span>
</a>
이렇게 했는데 잘 되더라고요.
언급URL : https://stackoverflow.com/questions/14939385/href-overrides-ng-click-in-angular-js
'programing' 카테고리의 다른 글
| Python용 MongoDB ORM? (0) | 2023.03.15 |
|---|---|
| jQuery.ajax() 요청 헤더 상태가 "304 Not Modified"인지 확인하는 방법 (0) | 2023.03.15 |
| Jersey 예외 : SERVE : Java 클래스의 메시지 본문 리더 (0) | 2023.03.15 |
| WooCommerce 3+ 어레이에서 주문 메타를 가져오는 방법 (0) | 2023.03.10 |
| WordPress remove_menu_page() 함수가 오류를 발생시킵니다. (0) | 2023.03.10 |