問題タブ [observers]

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

java - お互いを直接認識していないオブジェクトにオブザーバー パターンを使用する

これが私のオブザーバーとオブザーバブルのインターフェースです

これらは、お互いを認識している 2 つのクラスがある場合に機能しますが、以下のような状況をどのように処理すればよいでしょうか。

  • RootComposite (単語リストを作成)
  • WordListComposite (単語を作成)
    • ワードダイアログ

RootCompoiste が WordListComposite の変更について知る必要がある場合は、次のように実装できます。

これは期待どおりに機能します。

しかし、RootComposite はどのようにして WordDialog から更新を受け取るのでしょうか?

この場合の最善のアプローチは何ですか?

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

activerecord - 複数のモデルの ActiveRecord Observer を動的にインスタンス化する

現在、複数のモデルを監視するプラグイン/宝石を開発しようとしています。理想的には、オブザーバーは単一のメソッドを 1 つだけ使用して自動的にインスタンス化する必要があります...

私の最初のアプローチは、AR ベースに含まれるクラス メソッドを定義することでした。

そして、これを使用して、オブザーバー内で観察するモデルを検出します。

私が直面している問題は、モデルが定義される前にオブザーバーがロードされているため、ActiveRecord には子孫がなく、MyObserver は観察するモデルを認識していないことです。

私の次の試みは、ActiveRecord::Base.observers と ActiveRecord::Base.instantiate_observers をハックすることでしたが、うまくいきませんでした。

したがって、現時点では次のようになります。

オブザーバーは定義されていますが、観察するモデルがわかりません。モデルが定義され、監視対象としてフラグが立てられますが、オブザーバーは既に監視されています。

モデルが定義されるまでオブザーバーの読み込みを遅らせる方法はありますか、または誰かがこの問題に対するより良いアプローチを考えることができますか?

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

php - オブザーバーメソッドでは、ディスパッチされたイベントの後にコードを処理しないようにMagentoにどのように指示しますか

チェックアウトのどこかでそのキーがfalseに設定されている場合、セッションでキーを設定するコードがチェックアウトにあり、請求ページに送り返す必要があります。私はそのコードを持っていますが、サードパーティのサービスを呼び出し、セッションでこのキーが欠落しているために間違って戻ってくるため、通常はオブザーバーの後に実行されるコードを使用することもできません

これが私のコードです。必要なものはすべて揃っていますが、応答がすぐに発生する必要があります。ディスパッチされたイベント行が起動された後は、応答のみがブラウザーに返されます。

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

ruby-on-rails-3 - MongoMapperObserverのセットアップ方法

モンゴマッパーオブザーバーを作成しようとしています。そのためのクラス出口を見つけました:http://rubydoc.info/gems/danielharan-mongo_mapper/0.6.5/MongoMapper/Observer

問題は、それらをどのようにアクティブ化するかです。

app /observers/admin_observer.rbを作成します

今の問題は、それらをどのようにアクティブにするかです。アクティブレコードの方法は次のとおりです。

しかし、MongoMapperではactive_recordはありません。かなりナイーブで、config.mongo_mapper.observers =:adminを試しましたが、mongo_mapper構成ではオブザーバーではありません...

私は他に何を試すべきかわからず、私のグーグル調査は私に手がかりを与えませんでした。

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

c# - 代表者とのASP.Netのオブザーバー

ええと、私はasp.net3.5サイトで働いています。

私は次のようなオブザーバーを設定しました:

私は次のようにオブザーバーを使用します:

前の場合o.Invoke(); たとえば、ページタイトルを「Hello」に変更します。そして、NextButton_Click「さようなら」に設定した「」の中で、NextButton_Clickフィニッシュ後、タイトルは「ハロー」に戻ります。

なぜですか?

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

ruby-on-rails - テスト目的でキャッシュスイーパーを無効にするにはどうすればよいですか

私はスイーパーを使用してモデルを監視し、snogmetricsでログを記録しています。

snogmetricsが正しく機能するにはセッションが必要なため、オブザーバーではなくスイーパーを使用してこれを行っています。

ただし、テスト中、snogmetricsは完全に失敗します

ユニットテストでスイーパーを無効にするにはどうすればよいですか?ありがとう!

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

ruby-on-rails-3 - オブザーバーで url_helper メソッドにアクセスする必要があります。

いくつかのアクティビティ ログを生成するために使用されているオブザーバーがあります。

これらのアクティビティ ログには、実際のサイト アクティビティへのリンクが必要です。これにより、それらが表示されたときに対応するページに簡単にジャンプできるようになります。ただし、オブザーバーは url_helpers にアクセスできません (少なくともデフォルトでは)。

単純なリンクを保存しない場合は、リンク先のページの詳細を保存してから、後で逆シリアル化する必要がありますが、これはかなりばかげているようです。

オブザーバー内でリンクを生成するにはどうすればよいですか?

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

firefox-addon - Firefox拡張機能-user-interaction-inactive通知は1回だけ発生します

ブラウザが非アクティブになったときに通知する必要があるFirefox拡張機能を開発しています(user-interaction-inactive)。以下のコードに示すように、これにオブザーバーを登録しました。

私の問題は、オブザーバーが私の内線番号に1回だけ通知することです。つまり、Firefoxアプリケーションが起動し、他のウィンドウを前面に表示すると、しばらくすると通知されます。しかし、Firefoxを再び最前線に置き、生成されたアラートを閉じて(以下に示すように)、しばらくの間他のアプリケーションを使用すると、このイベントは二度と発生しません。

これに関する支援は大歓迎です。

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

javascript - EmberJS:@each.property.another_propertyを監視できません

私のEmberJSアプリケーションでは、「@ each.score.votes」のようなものを観察したり、総投票数を計算したり、ソートされたリストを返したりするユースケースがあります。

'@each.score'は別のEmberオブジェクトです。

ただし、「@ each.property.another_property」を監視しようとするオブザーバー(または計算されたプロパティ)は、まったく起動しません。こちらのhttp://jsfiddle.net/jqTRu/2/をご覧ください

[投票の変更]をクリックして投票を変更しますが、total_votesは再計算されません。ただし、人を追加すると、発砲します。

これはバグですか、それとも私が意図したことを達成するためのより賢明な方法がありますか?ありがとう。

編集:ピーターはそれがバグだと指摘しました。クリストファーの修正は機能します(ここでhttp://jsfiddle.net/kazim/jqTRu/3/を見ることができます)。

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

events - Observer メソッドが 2 回呼び出されないようにする

私は Magento 1.5.1.0 と「mPAY24 Payment Gateway」拡張機能を使用しています。イベント「sales_order_payment_pay」のオブザーバークラスがあり、アイテムの製造元に通知電子メールを送信します。

このソリューションには、いくつかの奇妙な動作があります。

  • 登録ユーザーとしてログインすると、オブザーバー メソッドが期待どおりに呼び出されます。
  • ゲストユーザーとしてチェックアウトすると、「sales_order_payment_pay」イベントは、「支払いトランザクション」(Mastercard、VISA)が成功したときに発生し、「戻るボタン」をクリックして Magento ショップに戻ると 2 回目です。電子メールが 2 回送信される動作。

オブザーバー メソッドが 2 回実行されるのを防ぐ方法はありますか?

よろしく、バーティ