問題タブ [ko-custom-binding]

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 に答える
1157 参照

knockout.js - knockoutjs カスタム バインディングの Dispose イベント

knockoutjs カスタム バインディングを使用してウィジェットを開発しようとしています。

ウィジェットは、ログインしたユーザーのオブザーバブルにサブスクライブするため、ユーザーがログイン/ログアウトすると UI が変更されます。サブスクライブはinit関数で行う必要があることがわかりましたが、ウィジェットが破棄された後、つまりDOMから削除された後、サブスクリプションをどこに配置するかわかりません。

ドキュメントには言及されていますinitupdate、カスタムバインディングを「破棄」するにはどうすればよいですか?

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

knockout.js - カスタム バインディングに追加された DOM 要素にカスタム バインディングの値を渡す

ノックアウト js カスタム バインディングを使用してコンポーネントを作成しようとしています。これは良い考えではないかもしれません。同じことを行う他の方法があれば、私は代替案を受け入れます。

アイデアは、要素にカスタムバインディングを設定して、バインディングに渡されたデータに基づいて要素のコンテンツが満たされるようにすることです。

たとえば (jade テンプレートで)、次のように記述します。

そして、私は次の(質問のために簡略化された)カスタムバインディングを持っています:

valueこれは、バインディングを使用してスパン コンテンツにバインドしたいオブザーバブルですtext。私の問題は、何を入れればよいかわからないため、バインディングの値として渡されたtheDataThatWasPassedToTheBindingものと同じになることです。$data.somePropertyHoldingSomeData

私は試した:

これは可能ですか?

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

knockout.js - ノックアウト カスタム バインディングの複数回の発火

同じバインディングを使用するページ上の各要素に対して起動するカスタム バインディングがあります。このコードは、最初のフィールドにテキストを入力すると、バインディングを 3 回起動します。

一度だけ発火させるにはどうすればよいですか?ノックアウト v2.3 と v3 を試しました。

http://jsbin.com/UKewOvu/2/edit?html,js,console,outputに問題の実際の例があります

コードは次のとおりです。

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

knockout.js - カスタム バインディング ハンドラが起動しない

最初のカスタムバインディングハンドラーを作成しようとしています:

問題は、値を更新しても「更新」がトリガーされないことです。起動時にのみトリガーされますか? ここにjsfiddleリンクがあります: http://jsfiddle.net/dingen2010/c43hu/2/

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

knockout.js - Knockout カスタム バインディングを使用した Slick.js カルーセル

Knockout で素晴らしい滑らかなカルーセル ( http://kenwheeler.github.io/slick/ )を使用したかったのです。他のいくつかの質問(https://stackoverflow.com/questions/26368176/slick-js-carousel-not-working-with-knockout-template-binding)を見た後、使用する方法があるようですカスタムバインディングですが、適切にロードするのに問題があります-DOMが完全にロードされる前に滑らかなカルーセルが初期化されているように見えるため、最後のスライドが最初のスライドに接続されません. また、内部 dom 要素がレンダリングされた後に呼び出されるノックアウト js カスタム バインディングを調べ、子バインディング コンテキストを使用して、カスタム バインディングで子要素が最初にバインドされるようにしようとしています。

html マークアップは次のとおりです。

result-thumbnail は、カルーセルに表示したいデータをフォーマットする別のノックアウト コンポーネントです。カスタム バインディング ファイル内:

私が考えていたいくつかのこと: - 洗練された初期化を更新関数に移動する必要がありますか? - 私が書いた洗練されたカスタム バインディングは、別の要素にバインドする必要がありますか? - オブザーバブルの値を変更する場合results、カルーセルを破棄してから再作成することでスリックを更新する必要がありますか?

どんな助けでも大歓迎です!私はまだカスタムバインディングについて学んでいます.誰かが滑らかなカルーセルをKnockoutで動作させる経験があれば、それも聞いてうれしいです.

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

knockout.js - 必要に応じて Knockoutjs カスタム バインディング

Knockoutjs.i を学習しようとすると、Knockoutjs カスタム バインディング関連のコードが見つかりましたが、あまり良くありません。

人々がいつカスタムバインディングを選ぶのか理解できませんか?

1) 可能であれば、カスタム バインディングがオプションになる状況をいくつか教えてください。

2) 誰かがコードを見れば、カスタムバインディングの fadeInText と viewModel には関係がないことを理解できますが、それでも機能しています。どうやって ?

3)複数のビューモデルがある場合、バインディング時にビューモデル名をバインディング名で指定するにはどうすればよいですか?

上記コードの jsfiddle リンクhttp://jsfiddle.net/rniemeyer/SmkpZ/

4) カスタム バインディングなしで同じ出力を実現する方法は? 可能でしたか?

私の質問に賢明に答えてください。ありがとう

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

knockout.js - カスタム バインディング - init が呼び出され続ける

カスタム コンポーネントと Knockout 内のカスタム バインディングの両方を使用して、小さなビジュアライゼーションをレンダリングしようとしています。私はこれを機能させましたが、ソリューションが理想的ではないことに気付きました。私のカスタム バインディングは、トランジションを使用してデータの変更を処理することになっています。

ここに画像の説明を入力

新しいアイテムが表示された場合、たとえばE、それをトランジションさせたいと思います。また、バインディングが変更されるたびに、各円の周りの緑色のストロークを更新する必要があります。

私の問題は、context以下のコードでバインディングが更新されると、バインディング全体が再初期化されるように見えることです。context下のノックアウトは前の DOM を削除し、ロット全体を再レンダリングしていると思います。これにより、各円が成長し、新しいアイテムのアニメーションがトリガーされます。

これを防ぐために何かできることはないかと考えています。基本的に、古いバインディングを更新したいのですcontextが、そうする方法があるかどうかはわかりません。

説明するためにコード スニペットを追加しました。ここでinit calledは、更新が発生するたびにログが記録されます。これを 1 回だけログに記録し、update called何度もログに記録するようにします。