Я использую следующий код, чтобы добавить/удалить класс «checked» в родительский вход для радио. Он отлично работает, когда я использую селектор JQuery внутри директивы, но не удается, когда я пытаюсь использовать элемент директивы, может кто-то, пожалуйста, проверьте мой код и скажите, почему он не работает с элементом и как я могу добавить/удалить класс, родительский вход с радиоприемником при использовании элемента вместо селекторов jquery? БлагодаряДиректива AngularJS удалить класс в родительском элементе
.directive('disInpDir', function() {
return {
restrict: 'A',
scope: {
inpflag: '='
},
link: function(scope, element, attrs) {
element.bind('click', function(){
//This code will not work
if(element.parent().hasClass("checked")){
scope.$apply(function(){
element.parent().removeClass("checked");
element.parent().addClass("checked");
});
}else{
scope.$apply(function(){
element.parent().addClass("checked");
});
}
//This code works perfectly
$('input:not(:checked)').parent().removeClass("checked");
$('input:checked').parent().addClass("checked");
});
}
};
});
HTML:
<div class="inpwrap" for="image1">
<input type="radio" id="image1" name="radio1" value="" inpflag="imageLoaded" dis-inp-dir/>
</div>
<div class="inpwrap" for="image2">
<input type="radio" id="image2" name="radio1" value="" inpflag="imageLoaded" dis-inp-dir/>
</div>
Это всего лишь предположение, что angularjs использует jqLite для манипулирования dom, поэтому попробуйте обернуть переменную 'element', как этот' $ (element) ' –
Спасибо, я просто попробовал, и он показывает ошибку. Uncaught ReferenceError: $ element is не определено – MChan
Можете ли вы показать код. В примере вы используете 'element' not' $ element', может быть plunker –