Всякий раз, когда я удаляю элемент dom, который предшествует элементу с указанным атрибутом ng-click, он больше не будет вызывать функцию, которую ссылаются на ссылки ng-click.ng-click больше не вызывает функцию после удаления элемента dom.
Вот пример этого не работает. Примечание: если вы измените if (true) на if (false) и нажмите «Сохранить», он правильно вызовет функцию.
function MainCtrl($scope) {
$scope.submit = function() {
alert('submitted');
}
function load() {
if(true){
$('#resetPassword').remove();
}
}
load();
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app>
<div ng-controller="MainCtrl">
<div class="btn-group m-b-20 pull-right" role="group">
<button type="button" id="resetPassword" class="btn btn-success">Reset Password</button>
<button type="button" class="btn btn-success" ng-click="submit();">Save</button>
</div>
</div>
</div>
Я не знаю, почему это происходит, но вы не должны использовать jQuery. Используйте 'ng-if', чтобы скрыть или показать кнопку при условии. Это способ пойти с Угловым. jQuery 'remove' здесь выглядит грязным. –
Правильный способ сделать это - написать директиву и применить ее к элементу, который вы хотите удалить. jQuery - зло в Угловых контроллерах. – Billy
@Jeremy Если я скрою/покажу, что css не работает должным образом, поскольку он ищет первый элемент в dom, поэтому мне действительно нужно удалить его из dom. – Alex