サンプル
これを検討してください Plunkr 。
必要なもの
IDで要素を取得できるようにする必要があります。
サンプルコードは、現在のビューに存在する任意のDOM要素にcssクラスを割り当てることができる必要があります。
これは、コントローラーの$ scopeによって提供されるソースオブジェクトを使用して確認する必要があります。このソースオブジェクトは、ビューの入力要素よりも多くのプロパティを持つ場合があります。
したがって、各オブジェクトキーをループして、対応するDOM要素が存在するかどうかを確認します。その場合は、その値を検証します。
質問
AngularJSのみを使用して、IDで要素を取得するにはどうすればよいですか(jQueryは許可されていません!!)?
特にPlunkrの場合、(実際に)機能するためにこの関数が必要です。
self.IsFieldCurrentlyActive = function(field){
// Should be (in pseudocode):
// var inputElement = angular.find(field);
// return (inputElement != 'undefined');
// Sample only
var idx = field.indexOf('Unused');
return idx == -1;
};
そして、これ(基本的に同じ):
self.GetElementByKey = function(key)
{
// Should be (in pseudocode):
// var inputElement = angular.find(field);
// return inputElement;
// Sample only
return null;
}
更新
申し訳ありませんが、重要な要件を追加するのを忘れていました。同じフォーム(および同じID)が複数出現する可能性があるため、一意のIDを想定するメカニズムは使用できません。したがって、Angularスコープを尊重する必要があります。
ありがとう!
純粋なJSでは、document.querySelector('#myID');
を実行できます
またはangular angular.elementを使用:angular.element(document.querySelector('#myID'));
代わりにangular.element($('#myElement'));
を試してください