問題タブ [knockout-mapping-plugin]
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.
jquery - Knockoutjsツリービューの遅延読み込み:子ノードが表示されない
ノックアウトjsを使い始めたばかりで、動的なツリービューを構築しようとしています. 簡単にするために、問題に関係のないものはすべて削除しました。ツリービューはネストされた UL タグで構成されます。
html:
コード:
したがって、ツリービューを 2 つのレベル (2 つのテンプレートを使用) でバインドしていますが、「GetGroups」で 1 つのレベルのみを取得しています (Destinations は存在しますが、空の配列です)。
グループがクリックされると、宛先が RetrieveDestinations() メソッドで取得され、グループ内の空の配列を置き換える必要があります。ただし、ツリービューには表示されません。
「GetGroups」に宛先を含めると、すべてが正しくレンダリングされるため、ツリービューのバインディングは正しいはずです。
javascript - ko.mappingは未定義です
この例に従うimhttp://jsfiddle.net/rniemeyer/badZb/。正確なコードをコピーしてサンプルアプリケーションに貼り付けるだけで、「ko.mappingisundefined」というエラーが発生しました。誰が何が起こっているのか知っていますか?私のko.observableとdependentObservableはうまく機能していますが、ko.mappingが機能していないだけです。
参考:knockout.jsのバージョンは2.0およびJquery1.7.1です。
knockout.js - ノックアウトマッピングを使用してデータを複製および再バインドするにはどうすればよいですか?
ViewModelのマスターソースからダイアログにいくつかのデータを複製する必要があります。その理由は、ユーザーがダイアログをキャンセルする可能性があり、キャンセルされた変更をマスターに反映させたくないためです。
マスターデータの複製コピーをダイアログに作成し、データバインディングが「localEdited。*」プロパティを取得するように設定されています。ユーザーが[OK]をクリックした場合、編集されている場合はデータをマスターに永続化して戻します。それ以外の場合は、新しいデータの場合はデータをプッシュします。
上記は現在機能していますが、マスター内の別のアイテムをクリックすると、ダイアログに更新された値が表示されません。ko.mapping.fromJSが一度だけ機能し、その後は二度と機能しないかのようです。常に最初の値を取得します。この問題を回避するにはどうすればよいですか?値を再バインドする必要があるように感じますが、KOの全体的なポイントはこれを行う必要がないことです。
データを親に永続化するにはどうすればよいですか。私は上記と同じ問題を抱えているのではないかと思います。
ところで、私はKnockoutJS1.2.1を使用しています。
knockout.js - ノックアウト マッピングを使用して、あるプロパティを別のプロパティにマップする方法は?
私は次のように定義されたモデルを持っています
およびJSのViewModelとして
また、ビューモデルを更新する必要があるコールバックがあります。
しかし、ko.mapping プラグインのプロパティ 'name' は 'Name' と等しくありません。
「名前」から「名前」へのマッピングを定義する方法は?
knockout.js - マッピングでモデルのプロパティを非同期的に設定し、ビューを自動的に更新する方法はありますか?
AJAX を介してモデルのプロパティの値を読み込もうとしていますが、AJAX の完了時にビューが更新されません。
ノックアウト 2.0.0 とノックアウト マッピング 2.0.3 を使用しています。
jsFiddle:
HTML:
JavaScript:
この例でitem.code
は、ビューモデルの初期化時に定義されているため の値が表示されますがitem.value
、非同期で入力されるため、 の値は表示されません。
プロパティの初期化と更新の両方で、ko.observable
とのさまざまな順列を既に試しましたが、役に立ちませんでした。ko.mapping.fromJS
item
可能であれば、すべての のプロパティを手動で初期化することは避けたいと思います。
ko.applyBindings
AJAX 呼び出しの内部に移動できることも知ってsuccess
いますが、このようなプロパティが複数あり、そのためにはキュー システムを実装する必要があり、これはやり過ぎです。
私は何を間違っていますか?それを行う正しい方法は何ですか?
jquery - ノックアウト JS サブスクライブ メソッドの問題
UI の処理と UI のパーツの移動には KnockoutJS を使用しています。
だからここに問題があります:
フィルター列があるグリッドがあります。タブアウトでデータをフィルタリングします。最近、Enter でデータをフィルター処理するリクエストを受け取りました。ノックアウトは、必要なアクションを自動的にトリガーするサブスクライブ メソッドを提供するためです。入力時にトリガーできる subscribe メソッドのカスタム実装を行う方法はありますか。
mvvm - KnockOutJS-1つのビューに複数のViewModel
私のアプリケーションは非常に大きくなり、単一のViewModelで各ビューを処理するには大きすぎると思います。
したがって、複数のViewModelを作成し、それらすべてを1つのビューにロードするのはどれほど難しいのだろうかと思います。また、 XViewModelデータをYViewModelデータに渡すことができる必要があることに注意してください。これにより、個々のViewModelが相互に通信できるか、少なくとも相互に認識できる必要があります。
たとえば、<select>
ドロップダウンがあり、その選択ドロップダウンには選択された状態があり<select>
、別のViewModelで選択されたアイテムのIDを別のAjax呼び出しに渡すことができます。
単一のビューで多数のViewModelを処理する際のポイントはありがたいです:)
knockout.js - KnockoutJS - マッピング プラグイン
Knockout でマッピング プラグインを使用しています。これは非常に簡単です。
しかし、値がビューにプッシュされる前に値に対して一連の操作を実行したい場合はどうすればよいでしょうか?
REST 呼び出しから「日付」文字列を取得しているとします。viewModel.date... を実行することで、マッピング プラグインを使用してビューでそれを参照できます。
しかし、マッピング プラグインに渡す前にデータ文字列を編集したい場合はどうすればよいでしょうか?
javascript - Knockout.jsko.mapping.toJSがビューのデータを更新していません
サーバーからjsonオブジェクトをフェッチし、ビューにデータを入力します。次に、データを変更してサーバーにプッシュバックします。次に、データの新しいコピーをフェッチして、変更を加えてビューを更新することを期待します。しかし、それは起こりません。TIA
この初期ロードは正常に機能します。次に、いくつかの作業を行い、オブザーバブルの1つを変更して、そのデータをサーバーにプッシュします。サーバーが更新を取得してから、ビューが更新されるようにデータの新しいフェッチを実行します(新しいデータを1つのステップで返すことができることはわかっていますが、コードではまだリファクタリングしていません)。
コンソールメッセージはすべて、新しいデータが戻ってくることを示していますが、私のビューは更新されません。
jquery - JQuery UI と Knockout でフィルタリングされた結果をドラッグ アンド ドロップ
まず第一に、ここに私が抱えている問題がある JSFiddle があります。
前提:
ご覧のとおり、ユーザー名のフィルタリング パラメータを入力できる入力ボックスが 1 つあります。
このコードは、すべてのユーザーが JQuery UI でドラッグ アンド ドロップをサポートするようにもします。
何かを検索してからアイテムをドラッグしようとすると、1つのアイテムだけがドラッグ可能になるのではなく、すべてがドラッグされます。
私が達成しようとしていること:
ユーザーのリストをフィルタリングし、結果のすべてのユーザーを 1 つずつドラッグできるようにしたいと考えています。
質問:
この問題を回避するために、これとは異なる方法でアプローチするにはどうすればよいでしょうか。実際、現時点でこの問題の原因は何ですか?
私の仮説:
検索後、ノックアウトはおそらく Dom オブジェクトの新しいセットを生成します (前のセットがまだメモリ内にある間)、まだいくつかのハンドラーがどこかにぶら下がっていて、1 回の検索の後、古いハンドラーが新しいハンドラーをいじり始めます。 ? 新しいレンダリングが完了した後、ドラッグがまったく機能しないことを期待しています。
乾杯、ラリ