2017-01-20 2 views
0

я написал следующую строку, чтобы добавить атрибут disable к элементу в угловомjavascript отключил атрибут, не работающий в angularJS?

angular.element(document.getElementsByClassName("pit")).setAttribute('disabled');

, но он не работает и бросает ошибку:

angular.element(...).setAttribute is not a function

+0

Вы должны использовать 'ng-disabled', если вы используете AngularJS. –

+0

Да, я тоже думал, что этот элемент динамически создан – lakshay

ответ

3

angular.element возвращает обернутый элемент jQuery/jQuery lite, а не необработанный элемент DOM.

Вы можете установить его с помощью методов JQuery:

angular.element(document.getElementsByClassName("pit")).attr('disabled', true); 

Это на самом деле не угловой путь, хотя. Подумайте о добавлении услуги для предоставления значений ng-disabled или директивы для управления отключенным состоянием.

+0

Элемент динамически создается, как я могу использовать ng-disabled на нем? – lakshay

+0

Вы можете использовать [$ compile] (https://docs.angularjs.org/api/ng/service/$compile) для создания динамических элементов, которые по-прежнему имеют угловое значение. Связанный вопрос: http://stackoverflow.com/questions/15279244/dynamically-add-directive-in-angularjs – iblamefish

+0

Я пытаюсь создать эффект морозного экрана всякий раз, когда я нажимаю на определенную кнопку, все содержимое должно быть размытым, потому что у меня есть применяемый класс размытия на них (CSS), и тогда я пытаюсь отключить их функциональные возможности, и в этом случае я их отключу. так что вы можете предложить мне другой способ сделать это ... – lakshay

1

Угловая построил в jQuery, так что вы могли бы просто добавить

$(".pit").attr('disabled', true); 
0
angular.element(document.querySelector(".pit")).setAttribute('disabled',true); 
+1

Несмотря на то, что этот код может решить проблему, всегда следует рассмотреть возможность добавления объяснения к нему. – BDL

2

angular.element возвращает a jQuery or jqLite Object, как имеет функцию attr(), который можно использовать вместо, так:

вместо:

angular.element(document.getElementsByClassName("pit")).setAttribute('disabled');

вы должны написать:

angular.element(".pit").attr('disabled', 'disabled'); 
0

Th это заявление будет работать только тогда, когда элемент типа входного

angular.element(document.getElementsByClassName("pit")).attr('disabled', true); 

Или используйте ng-disabled директиву. это лучший способ отключить элемент в угловом.

Смежные вопросы