2017-06-20 20 views
0

ng-repeatの結果として生成されるフォームフィールドのリストがあります。今私は、フォームからフィールド$valid属性にアクセスしようとしているアクセスanglejsフォーム番号を含むフィールド

<input name="myInput0"> 
<input name="myInput1"> 
<input name="myInput2"> 
... 

など:そのように私はにつながる `すなわち、フィールドに名前を繰り返しループの{{$インデックスを}}を使用します標準的なanglejsの方法、すなわちmyForm.myInput{{$index}}.$validで、これは例えば私が理解しているmyForm.myInput0.$validは変数にアクセスしており、数値が許可されていないため動作しません。

しかし、その後私はmyForm['myInput{{$index}}'].$validでアクセスしようとしました。私は働いていたかもしれないと思っていましたがまだありません。myForm['myInput0'].$validフォームフィールドに数値が含まれている場合にアクセスできる方法はありますか? (またはハイフンのような他の違法な文字)?

e:私はangularjs 1.2を使用していますが、これがなぜ機能していないのか説明できる可能性があります。誰もが1.3角前の回避策を知っていますか?

+0

でそれらを得ることができますを検証あなたが数字の –

+0

で終わっていても、それはplunkerかjsfiddleを追加できますか? –

+0

私はおそらく、私が使用しているangularjのバージョンであることに気付きました。私は1.2.19に固執しています。私がしようとしていることは、1.3+でのみ利用可能でした。 – ptr

答えて

0

正しい表現は、私は、回避策の二つの方法を考えることができmyForm['myInput' + $index].$valid

+0

これはangularjs 1.2ではうまくいかないと思うのですか?私は最初にその質問に言及するのを忘れていました。 – ptr

+0

ええ、そうです。これは1.3+で動作します。 1.2では、入力の動的名はサポートされていません。 – xReeQz

+0

公平なもの、私がもともと尋ねた質問に答えた人は明日までに回避策がない場合は、これを確認します – ptr

0

のようになります。

最初のオプション:

は、各入力にNG-変更を入れて、手動でそこを検証します。

番目のオプション:

は、すべての入力要素を取得し、各オーバーinterateと手動

あなたが、私はこの種のを行うことが可能です知っているから、この

var inputs = $document[0].querySelectorAll('#rankingForm input'); 
関連する問題