問題タブ [knockout-components]
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 - KnockoutJS によるコンポーネント間通信
次のビュー モデルを含む製品概要ページがあるとします。
- ProductIndexViewModel ; ページ全体にバインドされたルート ビュー モデル
- ProductListViewModel ; すべての製品を表示するためのウィジェット
- ProductRegistrationViewModel ; 新商品登録用ウィジェット
ウィジェットは、カスタム HTML 要素 (<product-list></product-list>
および など<product-registration></product-registration>
) を使用してロードされます。これらのウィジェットの知識をルートモデルに入れる必要がないので、これは素晴らしいことです。ただし、ユーザーが新しい製品を登録した後、製品リストも更新したいと思います。要するに:
ProductRegistrationViewModel から ProductListViewModel にシグナルを送信するにはどうすればよいですか?
私はすでにKnockout Postboxを調べましたが、これで問題が解決するようには見えません。複数の製品リストがあり、そのうちの 1 つだけを更新したい場合はどうすればよいですか? 理想的には、コンポーネントのビュー モデルに一連のパブリック メソッドを実装したいと考えています。次に、次のように、ページのルート ビュー モデルから 2 つを結び付けます。
ただし、ここからこれらのビュー モデルにアクセスすることはできません。それとも私ですか?
ルート ビュー モデルから子ビュー モデルにアクセスするにはどうすればよいですか?
最後に、誰かが私の問題に対するより良い解決策を見つけたら、私はすべて耳にします!
javascript - ノックアウトとコンポーネント間でトランジション効果を適用する方法
require を使用してロードされたノックアウトのコンポーネント間でアニメーション化されたトランジションを持つことは可能ですか? state() が変更されると、コンポーネントはフェード/スライドしますか?
過去に、fadeVisible で同様のことを行ったことがありますが、これは amd/require および新しいコンポーネント API では機能しないようです。何か案は?ありがとう :)
登録
使用法
javascript - Knockout コンポーネントのカスタム要素にアクセスするには?
このシナリオを見てください:
<hello></hello>
生成された html の結果を使用すると、次のようになります。
しかし、これが必要な場合はどうなりますか:
では、コンポーネント内のカスタム要素タグへの参照を取得するにはどうすればよいでしょうか?
javascript - カスタム要素がknockoutjs 3.2.0で処理されていません
私は最近 3.2 にアップデートしましたが、利用可能なカスタム要素とコンポーネント バインディングを利用したいと思っています。
これで、次のようなカスタム コンポーネント ローダーを作成しました。
これは typescript モジュールですが、JS に変換され、以下を使用して登録されます。
私は FF でデバッグしましたが、すべてが期待どおりに動作しているように見えます。次に、数行後に次の登録を行います。
カスタム ローダーで登録をまとめるクラスがあります。
ここでのモジュールは js モジュールではなく、フレームワーク内の別の概念です。とにかく、すべてが期待どおりに登録され、最後にko.applyBindings()
が呼び出され、ページにカスタム要素コンポーネントのインスタンスがある場合:
コンソール ログ メッセージは吐き出されず、見出しメニューには関連するテンプレートなどが挿入されません。そのため、ローダーの特定の実装の詳細を無視し、ローダーとコンポーネントの登録と要素の使用法を確認するだけで、これが機能している必要があります。 ?
その上のKOページから、私はすべての手順に従ったと思いますが、なぜ発砲しないのかわかりません...
javascript - foreach およびテンプレート内のノックアウト コンポーネント
したがって、コンポーネントとカスタム要素の導入により、ロジックとマークアップをカプセル化する方がはるかに簡単に思えますが、viewmodel を渡す必要がある場合に foreach セクション内でコンポーネントを使用する方法が少しわかりません。
したがって、私の現在のシナリオは、次のようなビューモデルがあることです。
上記では、部分データを含む POJO があり、Web サービスなどに接続し、その配列に部分データのインスタンスを入力するビューのメイン ビュー モデルがあります。次に、これは現在次のように使用されます。
.partial-view
が正しいテンプレート名などのスクリプト タグにあり、正しいテンプレートであると仮定すると、#partial-data
はメイン ビューにあり、ページにすべてのインスタンスを表示する必要があります。現在はすべて機能していますが、よりコンポーネントベースのモデルに移行したいと考えています。現在、テンプレートは SomePartialViewModel データに依存していることがわかります。そのため、そのコンポーネントのテンプレートとビューモデルがありますが、問題は周りにあります現在、セットアップ時にコンポーネントを登録しているため、ビューモデルをコンポーネントに取得し、params を使用してそのチャンクを設定します。ただし、この場合、バインド時にビューモデルをコンポーネントに渡したい...
コンポーネントをテンプレートに登録することはできますが、ビューモデルは登録できないと思いますが、プロパティを設定してテンプレートから foreach に移動data
できるスタイルバインディングの概念はありますか?$data
ビューにバインドしますか?
うまくいけば、私が解決しようとしている問題が見られ、どんな情報でも素晴らしいでしょう.
data-binding - ノックアウト 3.2 コンポーネント - foreach バインディング内のコンポーネント viewModel ルートにアクセスできない
ノックアウトの新しい 3.2 Component 仕様を使用して、オブジェクトのコレクションをレンダリングする foreach バインディングを内部に持つコンポーネントを作成しようとしています。foreach バインディング内のオブジェクトは、コンポーネントの VM の属性にアクセスする必要がありますが、foreach ループで一度その参照が失われるようです。
テンプレート内のコンポーネントのビュー モデルのルートに直接アクセスする簡単な方法はありますか?
コンポーネント VM:
コンポーネント テンプレート:
knockout.js - ノックアウト コンポーネントのリストの注文
ノックアウト コンポーネントのリストがあります
コンポーネント定義の監視可能な配列を作成する方法は次のとおりです。これは期待どおりにレンダリングされます。
ただし、それらを並べ替える方法がわかりません。私の配列には、コンポーネントの作成時に作成されたビューモデルはありませんname
。jsonData
簡単に再利用できるように、配列内の項目をコンポーネントのままにしておきたいと思います。
そのプロパティに基づいてソートできるように、作成されたビューモデルにアクセスする方法はありますか?
javascript - Knockout 3.2 - AMD がロードされたコンポーネント間の「if」ベースの遷移
require で動的にロードされるノックアウト コンポーネントを使用する SPA があります。
これが現在の外観です
私が探しているのは、if
仮想要素のバインディングと同じ結果を生成するだけでなく、状態が変化したときに遷移 (フェードイン/アウト) を配置できるものです。
このhttp://jsfiddle.net/rniemeyer/kNtdu/のようなものを見つけましたが、ノックアウト 2.1 では機能するようですが、3.2 では機能しないようです。
私は単に a を探しているのではなく、fadeVisible
a の線に沿ったものを探していることに注意してくださいfadeIf
。
助けてくれてありがとう。