0
특정 링크를 비활성화하려고합니다. 그것들은 네비게이션 바의 제 3 자 구성 요소 안에 있으므로 원본 HTML을 변경할 수 없으므로 대신 컨트롤러에서 ng-click을 제거하고 싶습니다. 요소를 찾아서 업데이트 할 수 있었지만 브라우저에서 요소를 검사해도 더 이상 클릭이 발생하지 않는다고해도 ng-click 이벤트가 계속 발생하고 있습니까?요소에서 클릭을 제거 할 수 없습니다.
HTML :
<div ng-app="myApp" ng-controller='myController'>
<div id="myDIV">
<ul>
<li><a ng-click='value=value+1'>click me to add value</a></li>
<li>not a link</li>
</ul>
</div>
<input ng-model="value" />
자바 스크립트 :
var app = angular.module('myApp', []);
app.controller('myController', ['$scope',
function($scope) {
$scope.value = 0;
var items = document.getElementById("myDIV").getElementsByTagName("ul")[0].getElementsByTagName("li");
_.each(items, function(item){
var link = item.getElementsByTagName('a');
if(link[0]){
console.log('before: ',link[0]);
var myElement = angular.element(link[0]);
myElement.removeAttr('ng-click');
console.log('after: ',myElement);
}
});
}
]);
바이올린 : http://jsfiddle.net/esoyke/s9gdxsc0/이
그 속임수를 풀어 준 덕분에 나는 그것에 대해 몰랐습니다. 내 코드는 실제로 setTimeout에 래핑되었지만이를 내 피들에 포함하는 것을 잊었다. 그래, 나는 그 hackish 이해, 난 그냥 사용자 정의 버전에 묶는 라이브러리 (각도 마법사)을 변경하지 않도록 노력했다. –