問題タブ [knockout-mvc]
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.
typescript - 階層的な JSON を TypeScript-KnockoutJS 型のオブジェクトにマッピングする
事前に感謝することから始めましょう:)
OK、ノックアウト マッピング プラグインを使用して、一致する JSON データから階層型の TypeScript/KnockoutJS 型付きクラスをロード/マップしようとしています。階層は N 次まで可能です。
JSONデータから最上位クラスをマップ/ロードするには、次のことができることを知っています。
ただし、複雑なN次の階層JSONデータを一連のTypeScript/KnockoutJSクラスにマップ/ロードし、親子関係を構築する方法はわかりません。
私は数え切れないほどの記事を読みましたが、単純な親子の例を超えた階層関係に関しては、どれも不十分であり、knockout.mapping プラグインを使用しても見つかりません。
これは、マップ/ロードしたいTypeScriptクラスの定義を切り詰めたものです。私は c++/c# 開発者なので、この性質の JavaScript は私にとってまったく新しいものです。
TypeScript オブジェクト
JSON は次のようになります。
knockout.js - デュランダル/ノックアウト。他のビュー/ビューモデルを更新する
デュランダルには、シェルと呼ばれるベース ビューがあります。
管理者/品質保証ユーザーが任意のシステム ユーザーを模倣できるように、検索ボックスを追加しました。ボタンをクリックすると、現在表示されているビューのビューを更新できるようにしたいと考えています。
- Shell (Blue) View (Red)
子ビューで関数を公開して、シェルから呼び出すか、子ビューからシェルのボタンクリックイベントにフックするにはどうすればよいですか。
質問:
Durandal は、さまざまなビューまたは親コンテナーにイベントをバブリングまたは渡すために使用できるフックを公開していますか?
javascript - ObservableArray の更新時に UI が更新されない
ユーザーが UI (html テーブル tblAllCert) のリストから行をクリックすると、2 つ目の HTML テーブル (tblCertDetails) にデータを入力する必要がある別の監視可能な配列にデータを入力するために発生するクリック イベントがあります。クリック イベントが発生し、データが戻ってくるのを確認できます。Observable 配列にデータが表示されますが、ビューが更新されません。
コード内のシーケンスの概要は次のとおりです。
ステップ 5 で UI (具体的には tblCertDetails html テーブル) を更新する必要がありますが、UI は更新されません。
これが私の見解です-
私のビューモデル-
そして、私のデータサービスからの関連する抜粋-
UI が更新されない理由のアイデアはありますか?
knockout.js - ノックアウト - ノックアウトを使用して複数選択リストボックス項目 (任意の順序で選択された項目) を別のリストボックスに転送する方法は?
2 つの複数選択リスト ビュー (dropdownList 複数) があり、ユーザーが最初のリストで 1 つのオプションを選択すると、2 番目の複数選択リスト (dropdownList) に自動的に挿入/転送され、最初の複数選択リストからそのオプションが削除されます。
asp.net-mvc-4 - MVC 4 で Knockout MVC を使用してネストされたオブジェクトにデータをバインドする
ここKnockout MVC
からノックアウトを自分のウェブサイトに統合するために使用していますが、問題があります。モデルに別のオブジェクトが含まれている場合、バインディングは失敗します。たとえば、ここに私のモデルがあります:
そして、これが私のものですProductModel
これらのモデルはテスト用であるため、非常に単純です。表示するビューは次のとおりです。
しかし、それは失敗しました。何も表示されませんでした。<input/>
は空白<span>
です。ここで何が間違っているのですか?コンテキストのバインドに何か問題があると思います。私を助けてください。どうもありがとう。
編集済み!以下は、自動生成された HTML の一部です。
バインディング:
ビュー モデル:
asp.net-mvc-4 - KnockoutMVC Foreach Lambda フィルター (または任意のフィルター)
ページのリストをループするディスプレイを作成できました。これにより、次のように DB テーブル内のすべてのページが表示されます。
Foreach のラムダ式で表示されるものをフィルタリングできるようにしたいと考えています。現在、IEnumerable 型を返しますが、最後に ToList() があっても、次は機能しません。
思い通りの結果が得られますが、これを行うのは面倒です。同じチェックで各フィールドに可視チェックを追加すると、必要なフィールドのみが表示されます。
リストをフィルタリングするために foreach を使用するより良い方法はありますか、またはこれは現在、常に完全なセットを返すように設計されていますか?