問題タブ [bindinghandlers]

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 投票する
0 に答える
416 参照

knockout.js - viewModel と bindingContext が bindingHandlers で定義されていません

次の bindingHandlers があります。

私からしてみれば:

init 部分にはelement、、、、、がありvalueAccessorます。allBindingsviewModelbindingContext

理由はわかりませんが、viewModelandbindingContextは未定義です。

何か案が?

ありがとう。


アップデート

コード内の 1 行をコメントすると、次のことがわかりました。

次にviewModel、init 関数でアクセスできます。それが問題のようです。さらに、 knockout.Validationの現在のバージョンは 1.01 であり、必要なもの (viewModel の追加プロパティ) と互換性がないようです。

誰かがこれについて私を助けてくれることを願っています。

ありがとう。

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

javascript - カスタム ノックアウト バインディングが予期せず 2 回起動する

ビューモデル データをハイチャート チャートにバインドするカスタム バインディング ハンドラーを作成しました。これには実際には 2 つの部分があり、1 つはハイチャートに必要な初期構成をバインドし、2 つ目は系列をチャートにバインドします。

ここにbindingHandlerコードがあります

これで 2 つのテストがセットアップされました。最初のテストは期待どおりに動作します。チャートを複数のシリーズにバインドし、バインドされた監視可能な配列に追加するとseries、チャートが一度だけ更新されます。このフィドルを見て、「追加」ボタンをクリックするときにコンソールを見てください。得られる出力は

update container Object { chart={...}}
seriesUnwrapped container [Object { name="Scenario0", color="red", data=[9]}, Object { name="Scenario1", color="green",データ=[9]}]

上記のコードを 1 回だけ実行したことを示します。

次に、2 番目のフィドルを確認してください: http://jsfiddle.net/8j6e5/9/computedシリーズと同様に、ハイチャートの初期構成は観察可能であるため、これはわずかに異なります。これで「追加」ボタンをクリックすると、バインディングが 2 回実行されることがわかります。

update container2 Object { chart={...}, xAxis={...}, series=[1]}
seriesUnwrapped container2 [Object { name="Scenario2", color="blue", data=[2]}]
update container2 Object { chart={...}, xAxis={...}}
seriesUnwrapped container2 [Object { name="Scenario2", color="blue", data=[2]}]

ハイチャートバインディングハンドラー内で使用allBindings.get('series')して依存関係を設定し、両方のバインディングが変更されたときに、ハイチャートバインディングを2回実行していると推測しています。私の質問は、これを停止する方法、またはこれが起こらないようにこの機能を他の方法で書く方法はありますか?

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

knockout.js - ミディアム エディターのカスタム バインド

medium-editor.js

これは私がカスタムバインディングを宣言した方法ですが、問題は、エディタに入力したときに監視対象が更新されることです。これがマークアップでの使用方法です。

これが私のhtmlにバインドされた私のVMです。

エディタースクリプトがアクティブになり、値がエディターに渡されるのを見ることができるため、最初のカスタムバインディングは期待どおりに機能します。エディターでhtmlを更新した後、オブザーバブルを更新できないという問題があります。

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

knockout.js - ノックアウト バインドは、入力すると機能しますが、バーコードでは機能しません

Keyup で動作するカスタム バインディングがあり、ユーザーが手動でデータを入力すると、valueAccessor().call が正常に動作し、目的の次の関数に入ります。ただし、同じデータをバーコード化し、同じリターン キーを送信すると (送信される最後の keyCode が両方のメソッドで 13 であることを確認しました)、valueAccessor は次の関数に到達せず、脱落します。

これは、バーコード データがフィールドに入力される速度と、それに続く「Enter」キーに関係があると思われます。バーコード文字の入力速度を遅くすると効果がありますか? もしそうなら、どのような方法をお勧めしますか?

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

knockout.js - Knockout カスタム バインディング ハンドラが子要素を更新しない

コンテキストを作成するカスタム ノックアウト バインディング ハンドラーに問題があります。デモンストレーションはこちら: http://jsfiddle.net/gf3tfarz/14/

「コンテナ」が監視可能な配列に適用される場合、子要素は更新されません。

これはカスタム バインディング ハンドラです。

「コンテナ」を使用した両方の例がデモンストレーションで機能するようにしたいと思います。

「with」を使用すると機能することに注意してください。

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

knockout.js - Polymer コア セレクターのノックアウト カスタム バインディング ハンドラー - 'selected' 属性を設定しても要素が更新されない

バインディング ハンドラーと HTML。

更新機能にヒットすると、ラジオグループ要素の選択された属性を手動で更新すると、すぐに「選択」に変わります。

$(要素).attr('選択', '0');

$(element).attr('selected') は常に「選択済み」です。

値が保持されない理由がわかりません。

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

jquery - .scroll() jquery は、ノックアウト カスタム バインディング ハンドラ内で動作しませんか?

jQueryでDurandal(requireJS+knockoutJS)を使っています

jquery 1.10.2 + knockoutjs 2.3.0 + requirejs

単純なコードでも機能しません

フェードアウト(); フェードイン()が機能していません

しかし、機能は正常に機能しています

推測はありますか?ありがとう