問題タブ [angular-forms]
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 - 別のフィールドをクリックして値を変更するまで、AngularJS フォームが有効性を更新しないのはなぜですか?
おはようございます!私はまだAngularJSにかなり慣れていないので、完全に理解できる答えが見つかりませんでした.
次のような構造のフォームがあります。
- 名前
- Eメール
- カラー[オプションレッド、オプションブルー]
- [色] でオプション ブルーを選択した場合にのみ表示される必須フィールド
Option Blueを選択すると、2 番目のフィールド セットが表示されます。ただし、 「オプション ブルー」の選択を解除すると、必須フィールドは再び非表示になりますが、別のフィールド (「名前」など) をクリックして別の値を入力するまで、フォームはフィールドが空であることを「認識」します。
条件は、イベント リスナー (?) が発生するたびにブール値の$form.$validをチェックします。これは onItemSelect と onItemDeselect と onSelectionChange です。
私がAngularについて理解していることから、私は...クリックして別のフィールドに入力するまで、別のダイジェスト(?)サイクルが開始されていないと思いますか? 疑問符がいっぱいで申し訳ありません。私の知識は少し不安定で、理由によりソース コードを完全に貼り付けることができません。
私の理解は正しいですか?もしそうなら、この問題を解決するための推奨される方法はありますか?
編集:ダミーの変数名とオブジェクト名を含むいくつかのサンプル コードを以下に追加し、コードのより大きなセクションを要約するためにいくつかの擬似コードを追加しました。
いくつかのデバッグ アラートを設定しました。OptionBlue の選択を解除すると、アラートに次の行が表示されることに気付きました: requiredFieldifOptionBisChosen: object Object
ただし、別のフィールドをクリックして値を入力すると、フォームは有効性を更新 (?) し、「requiredFieldifOptionBisChosen: null」と表示されます。
angular - Angular 4リアクティブフォーム - FormArray内のFormArrayはパスを取得できません
数日間、ユーザーが製品を作成できるようにすると同時に、親製品とは価格が異なる可能性のある製品のバリエーションを作成するフォームを作成しようとしています。例: 大きいウィジェットは 10 ポンド、小さいウィジェットは 5 ポンドです。毎回最終的には FormArray 内の FormArray になります。つまり、バリエーションの配列を持つ製品があり、それらのバリエーションには価格がありますが、属性の配列もあります。問題は、コントロールを追加しようとしたときに発生します。バリエーション価格を正常に表示できますが、バリエーションを追加するためのパスを取得できません.attributesコントロール、ngForのみが機能するというエラーが表示されます配列が [Object, Object] ではないか、コントロールが null です...覚えているよりも多くのエラーが発生しました! とにかく、何度も書き直された私のコードに、
最初に oninit のフォーム:
正常に機能するマスター プロダクトの属性を追加および削除するためのセクション:
バリエーションを追加する部分は機能しますが、メインの製品に追加された属性をバリエーションにコピーしようとしたコードがまだ残っていますが、うまくいったと思いますが、値にアクセスできませんでしたそれらを表示するために、variations.attributes がパスに対して機能しませんでした。
機能しないバリエーションに属性を追加する部分で、component.ts で問題が発生しています。
最後に、さらに混乱している私のhtmlです笑: