컨트롤러에서 다음과 같이 시도해보십시오.
1 요소를 선택하여 불필요한 속성을 제거
element.removeAttribute("target"
);
2 :
element.setAttribute('ng-click', 'loadMicrosite(messageItem.id)'); '' you can use string concatenation for messageItem.id
3를 사용하여 요소에 필수 속성을 추가 : 이제 DOM 만에 업데이트 된 요소가 그 아직 범위와 연결되어 있지. 그것을 위해 $ compile을 사용하십시오. 각도 별 문서 당 $
HTML 문자열 또는 DOM을 템플릿으로 컴파일하고 템플릿 함수를 생성하여 범위와 템플릿을 연결하는 데 사용할 수 있습니다.
https://docs.angularjs.org/api/ng/service/ $
var app = angular.module('app', []);
app.controller('mainCtrl', function ($scope,$compile) {
var sNew = document.querySelector('a');
sNew.removeAttribute("target");
sNew.removeAttribute("href");
sNew.setAttribute('ng-click', 'loadMicrosite(messageItem.id)');
$compile(sNew)($scope);
$scope.loadMicrosite = function(param)
{
alert("I am called");
}
});
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl">
<a target="_blank" href="http://sprintweb.abc.com/sos-children-s-villages-of-india-new-delhi-delhi"><b class="orange tdu">SOS Children's Villages of India</b></a>
</body>
</html>
지금까지 시도한 것이 있습니까? – Deep
아무것도 ......하지만 document.getElementById 통해 요소를 선택하고 그 속성을 변경할 생각입니다 ...하지만 그 방법을 모르겠습니다. – lakshay
속성을 추가하면 작동하지 않을 것입니다 - 필요합니다. HTML을'$ scope'에 대해 다시 컴파일하면'ngClick'이 인식됩니다. – tymeJV