問題タブ [dirty-data]
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 - How to make angular dropdown control (not select) in angular form?
I want to use a dropdown button instead of a select-options in a form. I'm using angular, and the problem is: 1. The dropdown should display the name of the selection but the form should submit its Id instead 2. Changes to the dropdown don't make the form dirty
How do I resolve this?
javascript - AngularJS: 非破壊、ノンブロッキングのフォーム送信
問題
ビューのデータ オブジェクトのさまざまなプロパティにバインドする複数の入力を含むフォームがあるとします。タブアウト (「ぼかし」) すると、その値を保存サービスに保持し、次のフィールドに移動して編集したいと考えています。この保存サービスは、新しく保存されたオブジェクトを完全に返します。次に、更新されたオブジェクトをコントローラーのデータ オブジェクトに書き込むと、編集中の現在の入力の変更が失われます。
質問
ngFormController
私が行方不明になっている組み込みの Angular ソリューションはありますか? 入力タイプごとのシナリオなしでこれをサポートするライブラリはありますか?
私は本当に次のようなことを避けることを望んでいます:
...そして、現在のビューモデルを着信ビューモデルと比較する必要があります。
javascript - ember データ関係と Ready/Loaded イベント
ember データにダーティ リレーションシップ トラッキングが組み込まれるまでは、独自のデータを展開してきました。(かなり古いものから) Ember/Ember Data 2.4.3 にアップグレードした後、カスタム ソリューションが機能しなくなりました。
問題は、レコードの関係状態のスナップショットを、後の状態と比較できる「元の」状態としていつ作成するかを知ることです。
アダプターのペイロードに次のものが含まれているとします。
結果のレコードのready
フックで、新しい参照 API を使用すると、次のようなことが言えると思います。
しかし、これはうまくいかないようです --commentIds
は空の配列です。
(プロパティを観察してisLoaded
も、私が望む結果が得られないように見えることに注意してください。レコードは、イベントが発生した時点で既にloaded
状態になっています。)ready
基本的に、アダプターのペイロードに関してrelationshipsLoaded
レコードの関係が設定されたときに発生するイベントのようなものが欲しいです。関連するレコード自体が利用できないか、読み込まれていない可能性がありますが、アダプターから返されたデータに基づいて、関係を持つレコードの状態に影響を与えるべきではありません。
いくつかの探検の後、ストアのバックバーナーにフックすると、機能するように見える何かが提供されることがわかりました。
しかし、これは明らかに大雑把であり、私が保証したいことを本当に保証しているかどうかはわかりません。
だから:これを行う本当の方法はありますか?より良い方法は?これは今後の機能ですか?
参考までに、codepen のイラストを作成しました: https://codepen.io/patternleaf/pen/Vazdxj
vb.net - 選択/テキストがフォームで変更されたかどうかを確認する
データを事前にロードした約 20 個のコントロール ( 、 など) を含むフォームがありComboBox
ます。TextBox
これはユーザーに表示され、任意のフィールドを変更する機能をユーザーに提供します。
変化が起こったことを認識する最良の方法がわかりません。いくつかの調査の後、私はそれらの線に沿っTextBox.TextChanged
てフラグまたは何かを見つけて設定しました。IsDirty = True
ユーザーが値を変更してから戻って、最初にロードされたときの状態に変更する可能性があるため、これが 100% の防弾になるとは思いません。現在のデータをに保存し、ユーザーが「キャンセル」をクリックして変更を保存するかどうかを尋ねるときに入力したデータ.Tag
と比較することを考えていました。.Text
これは私のコードです:
これは、ユーザーが [キャンセル] をクリックしたときのコードです。
これはこれを行う効果的な方法ですか?頼れるか?誰かがより良いアイデアを持っているなら、私はそれを聞きたい.
vb.net - TabPage で変更が行われたかどうかを検証する
だから、誰かが私に何かをする方法を教えてくれるかどうか疑問に思っています。アプリケーションに tabControl があります。約 25 ~ 30 個のフィールドを持つページ (TabPage1) をロードします。すべてのデータをロードすると、ループを実行して各コントロール値を .tag に保存します。基本的に各コントロールの ctr.tag.tostring <> ctr.text をチェックする isDirty() という関数もあります。フォーム上のすべてのコントロールをチェックするためのクイック ハンドラーを作成する方法を理解するのに苦労しています。TagPage1.Validating を使用してみましたが、何もしません。
私の isDirty() 関数は次のようになります...
この関数をどこかにプラグインして、次のように CALL を実行できることを望んでいます
コントロールの選択が変更されるたびにこれを呼び出す必要がありますか?
javascript - AngularJs、オブジェクトをダーティとしてマーク
Web API から取得され、「編集可能」なオブジェクトがいくつかあります。ユーザーが 1 つのオブジェクトを編集すると、いくつかのフィールドを変更できます。isDirty
オブジェクトがいつ変更されたかを知るために、これらのオブジェクトにフィールドを維持したいと思います ( isDirty==true
)。
オブジェクトにこのフィールドを設定するために、AngularJs の変更検出メカニズムに頼ることができるのでしょうか?
javascript - $scope の使用を避けて、ユーザー アクションで AngularJS ダーティ ビットを設定することはできますか?
フォームに設定 (チェック ボックスなど) のテーブルがあり、ユーザーはテーブルの行を追加および削除できます。 theForm.$dirty
ユーザーが設定を変更した場合 (たとえば、チェック ボックスをオンまたはオフにした場合) に設定されますが、テーブルに行が追加またはテーブルから削除された場合には設定されません。https://plnkr.co/edit/sOXFnZjpkrcExvxGsEVgに例があります
私は比較的新しい Angular 開発者ですが、$scope
回避できる場合は参照するのがベスト プラクティスではないと警告されています。この場合、コントローラーを依存させ、テーブルを変更する関数を呼び出すことができると思います。それが私の唯一の手段なのか、それともより良いアプローチがあるのか はわかりません。$scope
$scope.theForm.$setDirty()