問題タブ [angularjs-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - ng-repeat を使用した Angular ラジオ ボタンの検証
興味深い Angular 検証の問題が発生しています。ラジオ ボタンが選択されていることを確認する必要があります (ロード時にデフォルト値がない可能性があります)。ラジオ ボタンの値は、 を使用して配列から反復処理されますng-repeat
。ng-repeat
このすべては、ユーザーのリストに対して別の内部でも発生します。
問題は、関連するラジオ ボタンの各グループに一意/動的name
属性を設定する必要があることです。そうしないと、1 つを選択すると、別の行の他の選択が解除されます。属性に基づく検証で、この一意/動的な名前を必要な式と式で使用する方法が見つからないようです。name
ng-class
ng-show
これは機能していません:
ng-show="userFormRow.service-{{$index}}.$invalid"
コンテキスト内のコードのサンプルを次に示します。
そして、ここに完全なコード例があります。http://codepen.io/chrismbarr/pen/eNoGLJ?editors=101 コンソールでエラーを確認する
angularjs - 角度形式でフィールド数を検証する
次のように、モデルにサブモデルの配列が含まれるフォームがあります。
入力フィールドがない場合 (または、一般的に、入力フィールドの数がある値より小さい/大きい場合) にフォームを無効にするにはどうすればよいですか?
更新: 返信ありがとうございます。これがコントローラーの外で実行できることを願っています。
angularjs - 同じバリデータに対して複数のフィールドの検証状態を共有する
まず、Google と SO を検索しましたが、この特定の状況に対する回答が見つかりませんでした。はい、同じように聞こえますが、「MoreThan / LessThan」の考え方に基づいた投稿が他にもあります。これはその考え方にまったく従わないので、これを重複参照としてマークしないでください.
プランカーの例をチェックしてください
ユーザーがページの他の場所に既に存在するアドレスを入力しないようにしています。これを行うには、すべての住所フィールドを検証する必要があります。異なる場所に同じ番地がある可能性があるためです。アドレスが重複しないように修正されたら、バリデーターがすべての関連フィールドを有効に設定する必要があります。現在、最後に変更されたフィールドのみを有効に設定し、残りは無効のままにします。
プランカーの例は、何が起こっているかを示しています。私は、すべてのフィールドを繰り返し処理し、prestine と untouched に設定してから、dirty と touched に設定して検証を再度トリガーするなど、さまざまなアプローチを試しましたが、うまくいきません。
バリデーター
形
angularjs - AngularJs とコントローラーのエイリアス
ビューでAngularJSコントローラーにエイリアスを付けようとしましたが、何らかの奇妙な理由で、メソッドとプロパティにプレフィックスを付けても応答しないようです。何が原因でしょうか?
これが私のビューです(Laravel 5.1で使用しています):
AngularJS コントローラー モジュールは次のとおりです。
加えFormController
て、前の拡張:
angularjs - ボタンを押してhtmlテーブルに項目を追加する前に、angularJSで入力を検証する方法
操作を実行する前に入力要素を検証する方法、追加のアイテムをクリックして HTML テーブルに追加されたアイテムをリストすると、4 つの html 入力要素と html テーブルがあります。今私の問題は検証です。ボタンクリックで入力要素を検証したいです。
angularjs - モデルが無効になった場合、最後の有効なモデル値を使用する方法は?
入力フィールドの値など、ユーザーが何かを変更したときに変更を自動的に保存するアプリケーションに取り組んでいます。autosave
保存イベントを自動的にトリガーする必要があるすべてのフォーム フィールドに追加されるディレクティブを作成しました。
テンプレート:
指令:
これまでのところ、これはすべてうまくいきます。ただし、入力フィールドが有効な電子メール アドレスであることを検証するなど、検証をミックスに追加すると、undefined
viewValue が無効な電子メール アドレスに変更されるとすぐに modelValue が設定されます。
私がやりたいことはこれです: 最後の有効なモデル値を記憶し、自動保存時にこれを使用します。ユーザーが電子メール アドレスを無効に変更した場合でもname
、 とを含むオブジェクトemail
はサーバーに保存する必要があります。現在の validname
と最後の valid を使用しますemail
。
次のように、最後の有効な modelValue を保存することから始めました。
検証が追加されたテンプレート:
lastModelValue を保存するディレクティブ:
私の質問は、lastModelValue
保存中に使用する方法ですが、ビューに無効な値を保持していますか?
編集:
以下のJugnuが示唆する別の可能性は、バリデーターでビルドをラップして操作することです。
私は次のことを試みました:既存のすべてのバリデーターをラップし、最後の有効な値を記憶して、検証が失敗した場合に復元します:
しかし、このアプローチを継続する方法もわかりません。AngularJS を起動せずにモデル値を設定し、新しく設定された値を検証することはできますか?
angularjs - AngularJS 検証フレームワーク
次の方法で使用できる検証フレームワークを作成することは実行可能であり、特に困難ではありませんか?
基本的な実装を進めるには何が必要ですか?
おそらく、私がまだ遭遇していない同様の使用概念を持つ既存の AngularJS Validation フレームワークがあるでしょうか?