問題タブ [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 に答える
110 参照

php - オブザーバーを使用したPHPオブジェクトの構成?

私の用語が間違っていると思われる場合はすみません...(おそらく間違っているため)

コンポジションを使用していて、高レベルのオブジェクトが次のようなものであるとします。

$activitiesがより多くのオブジェクトで構成されているとしましょう。そのうちの 1 つはStealingCookiesFromJarです。

オブジェクトpunish内から具体的な子メソッドを呼び出すにはどうすればよいですか? StealingCookiesFromJar(私はオブザーバーに慣れていません...それは私がここで学ぶべきことですか?)

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

magento - オブザーバーで構成可能な製品の最終価格を取得する

2 つの価格 (価格と月額) を持つ構成可能な製品があります。製品の価格は固定されており、オプションで変更できるのは月額料金のみであるため、価格を格納する属性 (device_price) を追加しました。価格属性には月額料金が含まれます。

しかしもちろん、商品をカートに追加するときは、月額料金ではなく、料金を請求する必要があります。したがって、次のコードを持つ checkout_cart_product_add_after のオブザーバーを使用しました。

しかし、カートに両方の価格を表示したいのですが、オブザーバーで更新すると最終価格が自動的に表示されますが、月額価格を取得するにはどうすればよいですか? (製品の価格と選択したアソシエイトの価格)。

月額料金は、オーバーライドする前に見積もり項目のどこかにあると思います (実際にオーバーライドするか、単に magento と言ってオリジナルではなくカスタムを確認しますか?)。

私が考えていたのは、その月額を取得して quoteItem のどこかに保存して、カートで簡単にアクセスできるようにすることです。

オブザーバーで構成可能な製品の最終価格を取得するにはどうすればよいですか?

より良いアプローチ方法があると考えられる場合は、他の提案を受け入れます。

解決策を編集

やっとどこにあったか分かりました。実際には非常に簡単に入手できるので、今は気分が悪いです:(私は常にアイテムから値を取得しようとしていましたが、実際にはアイテム内の製品にあります

これにより、選択したオプションを含む構成可能な製品の最終価格が表示されます。

多分それは私がした時間を無駄にしない他の誰かを助けることができます.

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

prototypejs - プロトタイプ:フォーカスを失うためのイベントは何ですか?

フォーカスが失われたテキストフィールドに変更を加えたいのですが、必要なイベントがわかりません。これは私のコードです:

だから、私は????の代わりに何を入れなければなりませんか??

ありがとう!

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

ruby-on-rails-3 - オブザーバーで属性をプルするレール

コメント テーブルを監視し、何かが作成された後に電子メールを送信するこのオブザーバーがあります。ArgumentError (wrong number of arguments (0 for 5)):エラーが発生したか、次のコードを使用しているため、オブザーバーで関連付けを正しく行っているようには見えません。

オブザーバー内に正しい関連付けを記述する方法はありますか?

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

esb - Muleメッセージオブザーバーを実装する方法は?

メッセージを変更する必要のない単純なメッセージオブザーバーをMuleに実装しようとしています。

ドキュメントのこのリンクは、AbstractMessageObserverを拡張するのが最も簡単な方法であることを示しています。しかし、このリンクでわかるように、クラスは以前のバージョンのMuleでは削除されています。

それで、これを今行うための最良の方法は、MessageProcessorインターフェースを実装し、プロセスメソッドでMuleEventパラメーターを返すことです。

0 投票する
0 に答える
2118 参照

magento - Magento sales_order_payment_pay オブザーバーが起動しない

Magento インストールからドロップシッパーに情報を送信しようとしています。これは、支払いが完了するとすぐに発生するはずです。私が知る限り、Magentoには支払いが完了したときに解雇されるオブザーバーがあります。

次のファイルがありますが、オブザーバーが起動していないようです: app/etc/modules/SPB_Coreextended.xml:

アプリ/コード/ローカル/SPB/Coreextend/etc/config.xml:

アプリ/コード/ローカル/SPB/Coreextend/Model/Observer.php:

ご覧のとおり、config.xml から別のメソッドも呼び出していますが、これは機能します。したがって、オブザーバーのconfig.xmlセクションに問題があると確信しています。私はそれが失敗した場所を見つけることができないようです。

助けてくれてありがとう!

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

ruby-on-rails - この ActiveRecord::Observer を Service オブジェクトに変換する方法は?

次の ActiveRecord::Observer を Service オブジェクト (または複数のオブジェクト) に変換するにはどうすればよいでしょうか?

すべてのPushService変更の WebSocket を介して、接続されているすべてのブラウザーを更新します。これは、外部プロセスへの POST によって行われます。Thread.newからSidekiq に移行してから、オブザーバーが壊れました。:after_create で開始された Sidekiq ジョブは、トランザクションが実際にコミットされる前に実行される可能性があるため、ActiveRecord::NotFound エラーが発生します。

:after_commit フックを使用することをお勧めしますが、そうすると必要な情報PushServicerecord.changes利用できなくなります。

このオブザーバーが実現する興味深い使用例は、別のメッセージへの返信である新しいメッセージが作成されたときです。2 つのコールバックが自動的に実行されます。返信メッセージ用の :after_create と、スレッド メッセージ用の :after_touch 。

明示的なサービス オブジェクトを使用して、この動作を実行する方法に興味があります。

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

magento - Magento checkout_cart_product_add_before および追加された製品の数を取得する

イベント checkout_cart_product_add_before を作成しました: http://markshust.com/2012/08/27/create-checkout_cart_product_add_before-observer-magento

ただし、これを行うと getQuoteItem() が利用できないように見えるため、カートに追加された製品の数を取得できません。_after メソッドを使用すると、次を使用できます。

ただし、まだそこにないため、getQuoteItem に到達できません。ユーザーがカートに追加しようとしている商品の数を取得する方法はありますか?

ありがとう!

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

ruby-on-rails - RailsとMongoidのフィールドを観察する

私はUserモデルを持っています、そしてFollowingFollower

ユーザーモデル

フォロワー

続く

そして、私はUserObserverユーザーが変更されたかどうかを確認follower_idsし、それをユーザーに追加する必要がありますActivities

では、どうすれば変更を監視しfollower_ids、最新のユーザーidに入力してもらうことができますか?activities

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

magento - Magento Observer 宛先

私は 2 つの Magento オブザーバーを作成しましたが、どちらも間違ったページで終了することを除いて、私が望むことを正確に実行します。つまり、ログ ファイルを書き込み、データベースを変更し、他のサーバーと通信しますが、ページ間のルーティングを変更します。たとえば、ログイン時に使用したオブザーバーは、データベースを変更し、Cookie を書き込み、ログに書き込みますが、ログイン後のページを次のように変更します。

http://www.my-web-site.com/index.php/customer/login/post/

その後、404エラーが発生します。「Ctrl」+「r」を押すと、にログインします

http://www.my-web-site.com/index.php/customer/account/index/

どちらが正しい。app/code/local/my_module/my_model/etc/config.xml を app/code/local/my_module/my_model/etc/config.xml.1 に変更すると (つまり、オブザーバーを取り出します)、Magento がルーティングします正しいページへ、

config.xml にルーター情報が必要だと考えています。私の現在の config.xml は次のとおりです。

Magento 内のログインがオブザーバーを使用していると推測し、それを妨害しています。

以外に、PHP Observer コードでも同様のことを達成できると思います。私のオブザーバーは次のとおりです。

ルーターについて読んだことがありますが、記事では、拡張機能が実行される前にページにランディングするという観点から説明されていました。ご覧のとおり、拡張機能の実行後に正しいページに移動する必要があります。

PHP オブザーバー内で、リダイレクトも試しました。例えば、

完全な URL アドレスか何かが必要かもしれません。これは簡単に修正できると確信していますが、私の無知が私を追いかけているようです。これについて何か知っていることがあれば助けてください。