問題タブ [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.
knockout.js - 要素バインディングを動的に追加するにはどうすればよいですか?
次のような他のものを集約するカスタム バインディングがある場合:
「allBindingsAccessor」は、init 関数で現在のバインディングのみを返しています。
binding2 の「init」関数で binding1 と binding2 を返し、binding3 の「init」関数で binding1、2、および 3 を返すことを期待していました。
次のフィドルは、私が言及した動作を示しています。 http://jsfiddle.net/J3sjq/5/
問題は、私の binding3 が、たとえば binding2 のような他のバインディングの存在に依存していることです。
その動作を実装する最良の方法は何ですか? 他のバインディングの存在を通知するためにコンテキストを変更することを考えていましたが、ハックのように少し聞こえました。
前もって感謝します。
編集:
元の問題をより多く表示するようにフィドルを更新しました。単純化しようとしましたが、やりすぎた可能性があります。
新しいフィドルでは、binding1 は initFieldStatus に置き換えられ、それぞれが入力フィールドのステータスを計算する 3 つの他の複雑なバインディングを初期化します。 isInputAtWarning バインディングは、要素で宣言された他のバインディングに依存します。
うまくいけば、これで質問が明確になります。
ありがとうございました。
編集2:
私が実装しようとしているもののより現実的な例をフィドルに提供しました。
knockout.js - Knockoutjs: ScrollIntoViewTrigger
私は最近問題に苦しんでいました。私はそれを解決しましたが、より良い解決策がないかどうかわからないので、コメントをいただければ幸いです。
問題。「ScrollIntoView」バインディングを作成したかったのです。要素をビューにスクロールするには DOM-Element が必要なので、いつでも好きなときに明示的にトリガーしたいカスタムバインディングを作成しました。私はこのコードから始めました:
};
バインディング:
そして、ViewModel には、次のオブザーバブルがありました。
次に、次のように呼び出してトリガーできます。
ここまでは順調ですね。しかし、私はすぐに問題に遭遇しました。goTothis() Observable を true に設定するたびに、true 値がそれに固執し、ユーザーが明示的にトリガーしなくても、一部の要素がビューにスクロールされました。たとえば、ビューを変更し、基本的に if バインディングですべての要素を非表示にしてから元に戻すと、if バインディングは、以前に true に設定されていたすべての goToThis オブザーバブルを再トリガーします。うーん!
だから私はこのパターンを考え出し、カスタムバインディングを次のように拡張しました:
基本的に、トリガーされるたびにブール値をリセットします。
だから私の質問はこれだと思います: 誰かが scrollIntoView バインディングを書いたことがありますか? はいの場合、どのように解決しましたか?
そして一般的に、トリガーを書くためのパターンはありますか? つまり、バインドをトリガーしたいだけですが、実際の値の変更はありません。
よろしくj
knockout.js - ノックアウト カスタム html バインディング
ノックアウトを使用して html エディター/プレビューアーを作成しようとしています。次のように、単一のオブザーバブルを使用して簡単なテストを設定しました。
JS:
HTML:
これは、ページが最初に読み込まれ、「testtext」を含む div が表示されたときに正常に動作するように見えますが、入力フィールドを
<div data-bind=\"text: 'testext2'\"></div>
バインディングのようなものに編集するとすぐに動作しません!
これはノックアウトの制限ですか、それとも何か間違っていますか? リバインドを実行する方法はありますか?
JSFiddle はこちらから入手できます: http://jsfiddle.net/Q9LAA/
c# - CodeBehind からの Silverlight カスタム バインディング
WShttpbinding
とに関する多くの例を見てきましSilverlight
た。また、アプリケーションを正常に実行できましたが、コード ビハインドからカスタム バインディングを作成する必要があります。
私はそれを試しましたが、以下のようなエラーが発生しています:
コード
サービス構成ファイル
.net - メッセージのタイムスタンプから署名付きリクエストの送信までの秒数を削除
TransportSecurityBindingElement セキュリティ要素を使用する WCF カスタム バインディングがありますが、クライアントと (サード パーティの) サーバーの両方で時間の精度に関する問題が継続的に発生しています。
タイムスタンプを分単位で正確にするために秒を削除するにはどうすればよいですか (サーバーはこれを受け入れると言われています)。
私が持っていた代替案は、すべてのリクエストの前にシステム時間を更新することですが、これはサーバー時間が正確であると(誤って)想定しています。また、タイムスタンプを完全に削除しようとしましたが (必須ではない可能性があります) System.InvalidOperationException
、Signing without primary signature requires timestamp.
セキュリティ要素を構築する .Net コード:
メッセージ ヘッダー、タイムスタンプの精度 (過剰な可能性あり) に注意: