2017-01-20 26 views
0

私は角javascriptが無効な属性がangularJSで機能していませんか?

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

の要素にdisable属性を追加するには、以下の行を書かれているが、それは誤りで作業して投げていません:角が組み込まれてい

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

+0

AngularJSを使用している場合は、必ず「ng-disabled」を使用してください。 –

+0

ええ、あまりにも、その要素が動的に作成されていると思っていた – lakshay

答えて

3

angular.elementは、生のDOM要素ではなく、jQuery/jQueryライトラップ要素を返します。

あなたは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ディレクティブを使用してください。これは角度のある要素を無効にするための最良の方法です。

関連する問題