問題タブ [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.

0 投票する
1 に答える
389 参照

knockout-components - Knockout コンポーネントとの通信

親ビューモデルからKnockoutJS コンポーネントに通信する方法はありますか?

顧客を検索し、選択した顧客を返すためのブートストラップ モーダル ダイアログ ボックスを含むコンポーネントがあります。params現在、ダイアログ ボックスを表示するには、コンポーネントの属性でビューモデルから監視可能なブール値を渡します。ダイアログを表示するには、これを true に設定し、ダイアログ ボックスを呼び出します。また、コールバック関数を渡しparamsて結果を返します。

これは概念を示すフィドルのデモです: http://jsfiddle.net/Quango/5bxbsLt6/

観察可能なブール値を渡してダイアログを呼び出すのは適切ではありませんが、それが私が持っている唯一の有効な解決策です。私が持っていた他の唯一のアイデアは、ko-postbox を使用してパブリッシュ/サブスクライブ機能を作成することでした。

アクションを呼び出す方法が必要なように感じ component.Show()ます。

0 投票する
1 に答える
1610 参照

knockout.js - Knockout 3.2: コンポーネント/カスタム要素に子コンテンツを含めることはできますか?

子マークアップを使用する空でない Knockout コンポーネントを作成できますか?

例として、次のようなモーダル ダイアログを表示するためのコンポーネントがあります。

コンポーネントテンプレートと一緒に:

出力:

0 投票する
3 に答える
5947 参照

javascript - ネストされたすべてのコンポーネントがレンダリングされたときの KnockoutJS afterRender コールバック?

3.2.0 を使用して、ネストされた KnockoutJS コンポーネントの階層があります。非常にうまく機能していますが、コンポーネントの階層全体がロードされてレンダリングされたら、いくつかのコードを実行しようとしています。これは、afterRender() とほぼ同等であり、afterRender と同じ一般的なユース ケースに必要です。

私はいくつかのアプローチを試しましたが、これまでのところ運がありません:

  1. 以下をルート テンプレートに追加しましたが、ネストされたコンポーネントが読み込まれる前に呼び出されるため、早すぎます。 <!--ko template: {afterRender: onLoad.bind($data)} -->
  2. 最新の 3.3.0-alpha を使用し、すべてのコンポーネントで synchronous:true を指定します。しかし、私は AMD を使用しているため、コンポーネントは依然として非同期で「ロード」されていると考えています。
  3. 対応するコンポーネントがロードされたときにのみ解決される遅延オブジェクトのコレクションを構築しようとしました。これは非常に複雑になり、まだ説明しない理由で機能しませんでした。

ノックアウトjsコンポーネントの完全な階層がロードされてレンダリングされたら、コールバックを呼び出す方法はありますか? ありがとう!

この 2 つのスレッドに出くわしたばかりなので、他の人もこれを探しているようです。既存の回避策との主な違いは、ネストされたコンポーネントでは機能しないことです。

0 投票する
1 に答える
1700 参照

knockout.js - インスタンスを使用したノックアウト コンポーネントのパラメータ

requirejs を使用して、ノックアウト コンポーネントの「インスタンス」(シングルトン) にパラメーターを送信したいと考えています。ノックアウト ヘルプは、インスタンス以外のパラメーターの受け渡しの例のみを示しています。

インスタンスを使用して正しく動作する次のコードがあります。

私がやりたいのは、コンポーネントから PARAMS を渡す以下のようなものです。ただし、これは明らかに機能しません。

ありがとう

0 投票する
1 に答える
642 参照

javascript - ノックアウト コンポーネント オプションの選択

私は髪を引き裂いています、誰か私を助けてください...

JSON オブジェクトに基づいて選択リストをレンダリングする単純なノックアウト コンポーネントを作成したいと考えています。これは単純な文字列配列を使用すると機能しますが、JSON オブジェクトを使用すると、id 属性と name 属性が optionsText と optionsValue を使用してバインドされ、[object object] のドロップダウン リストが表示されます。

どんな助けでも大歓迎です。

0 投票する
2 に答える
1160 参照

javascript - Knockout Components 、テンプレートはすでにこの要素に注入されていますが、まだバインドされていません

Knockoutjs Docsから、私はこの文を理解していません:
テンプレートは既にこの要素に注入されていますが、まだバインドされていません。

0 投票する
1 に答える
2789 参照

javascript - Knockout での初期化時にコンポーネント関数を呼び出す

通常のビュー モデルでは、次のようにコンテキスト外で初期化後に関数を呼び出すことができます。

http://jsfiddle.net/h01ky3pv/

コンポーネントのビュー モデルでこのようなことを行うにはどうすればよいですか? foo コンポーネントが最初にロードされたときにFooComponentViewModelの関数を呼び出したい。Foo

http://jsfiddle.net/r3d41q6c/2/

0 投票する
1 に答える
2835 参照

knockout.js - ノックアウト コンポーネント - カスタム コンポーネント ローダー

私は Knockout コンポーネントを使用しており、モジュールの読み込みにはSystem.jsを使用しています。

カスタム コンポーネント ローダーがあります。

しかし、これは次のメッセージで失敗します。

TypeError: undefined は関数ではありません {stack: (...), message: "undefined is not a function"}

これは私のresult.templateがどのように見えるかです:

これは私のresult.createViewModelがどのように見えるかです:

完全なエラーは次のとおりです。