問題タブ [knockout-extensions]
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.
knockout.js - デュランダルノックアウト
このコンポーネント jchartfx を Durandel と統合しようとしています。私はデュランデルなしでノックアウトを使用するスタンドアロンのプロトタイプを持っており、完全に動作するので、問題はデュランデルに関連していると確信しています.
これが私のビューモデルコードです:
そして私のhtmlバインディング
私が言ったように、私はデュランデルなしでこれを機能させています。
そのソリューションのスクリプトは次のとおりです。
私が見ることができる唯一の違いは、このスクリプトはページの読み込み時に実行され、Durandel が代わりに行うのではなく、手動で ko バインディングを適用する必要があることです。エラーは発生しません。グラフ データが表示されないだけです。
knockout.js - 既存のオブザーバブルからエクステンダーを削除するには?
Knockout Validation プラグインを使用し、必要に応じてエクステンダーを使用してオブザーバブルを設定しています。
エクステンダーを追加した後、エクステンダーを削除することはできますか?
javascript - ノックアウト拡張機能の問題 - より良い解決策はありますか?
私はノックアウトに慣れていないので、それをうまく処理する方法をまだ学んでいます。アプリには、リアルタイムで更新される一連の計算に関連付けられている入力フィールドがいくつかあります。フィールド自体はうまく機能し、すべて問題ありません...
例外として、ユーザーが入力した入力を表示専用にフォーマットする必要があります (生データは計算のために保持する必要がありますが、3 は 3% として表示されるか、別のフィールドでは 3000000 は 3,000,000 などとして表示される必要があります)。これはある程度機能していますが、結果が一貫してバグであり、入力フィールドを完全に壊す可能性があるため、私のソリューションには大きな欠陥があると思います。
したがって、常に 100% になるように別のフィールドに関連付けられている入力フィールドの 1 つの例を次に示します。
にバインドされています:
次に、次のように拡張されます。
したがって、ここで何が起こるかというと、ユーザーが最初に入力した文字は正しく書式設定され、ユーザーが入力した 2 番目の文字は消え、3 番目は最初の文字と結合して正しく書式設定されます。これは、フィールドが計算された場合または通常のオブザーバブルである場合と同じように発生し、計算されたコードは拡張を適用しなくても正常に機能します。したがって、77% を入力するには、7 - X - 7 と入力する必要があります (X は、プロセスのどこかで失われるため、任意の値にすることができます)。
また、このアプリでは仮想 JavaScript 数値キーボードを使用しているため、JavaScript を介して値を追加していることにも注意してください (ただし、これは他の機能には影響していないため、ここで追加する理由はわかりません)。
私が間違っていることについて誰かが提案できますか? 入力が非常にバグる原因となっているのは何ですか? 私は、このリアルタイム入力フォーマットの概念を捨てないことを強く決意していますが、そうする必要がある場合は、ぼかしをフォーマットするだけです。
ご提案いただきありがとうございます。
knockout.js - 入力マスクを利用した Knockout カスタム バインディングを使用すると、Knockout Validation が無効になります
Knockout Validation と Knockout カスタム バインディングの両方を入力マスク ( http://robinherbots.github.io/jquery.inputmask/ )で使用したいと思います。例: お金の入力ボックス、そもそもユーザーがアルファベットをまったく入力できないようにしたいし、同時に最小額と最大額も制限したい。
私のJSFiddleでは、カスタムバインドされていないオブザーバブルには検証が機能していることがわかりますが、他のオブザーバブルにはありません。