标签: observers

Magento如何在观察者中获得订单状态

这是我在做什么,

在这个事件下:sales_order_save_after

我在观察者中有一些代码来获取订单状态.

public function saveBookingInfoFromOrder(Varien_Event_Observer $observer){                
        $order = $observer->getEvent()->getOrder();

        //$last_orderid = $order->getIncrementId();

        $last_orderid = $order->getId();
        $order_status = $order->getStatus();
}
Run Code Online (Sandbox Code Playgroud)

但是订单状态还没有到来,有什么建议吗?提前致谢

events observers magento orders

3
推荐指数
1
解决办法
9138
查看次数

结帐开始观察员

Magento有观察员来检测结账过程的开始吗?这包括点击页面checkout/onepage/checkout/onestepcheckout/.如果可能的话,我想避免重写控制器.

observers magento

3
推荐指数
1
解决办法
8993
查看次数

如何在rails 3中实时推送内容

我想知道如何在我的网站上实时推送内容..我已经研究了一段时间,我意识到有很多方法可以完成这项工作.

首先考虑一些问题:我有一个带有一些社交功能的Rails 3应用程序.我想要实现的功能之一是在创建新活动时通知我的用户.我的第一种方法是实现SSE和一个控制器,在最后一次加载的活动之后在DB中搜索新的注册表.

这可以工作,但这需要太多的数据库查询,我只需要在创建新活动时将活动推送到所有活动用户(与该活动相关),而无需进行数据库查询.

我的第二种方法是创建一个指向控制器的路由,一个观察者捕获何时创建一个新活动,稍后将创建的当前活动传递给控制器​​,最后通过SSE渲染活动部分.

这是我的问题..如何将观察者与控制器连接并将其传递给要呈现的当前活动?在那里,我可以使用其他控制器类型,如金属控制器甚至抽象控制器类型?

在这一点上,我意识到这可能是另一种做这项工作的方法.如果我能找到一种方法来做到这一点而不必用另一种语言或框架开发它真的很好..我认为应该有一个宝石这可以让实时应用程序更容易..你怎么看?我是正确的方式或我应该做什么来实现这一目标?非常感谢!!

ruby-on-rails real-time observers server-sent-events

3
推荐指数
1
解决办法
2737
查看次数

iOS NSNotificationCenter Observer未被删除

我在AppDelegate中有以下代码.目的是创建几个观察者,然后调用一些代码.一旦该代码完成,然后发布通知,然后观察者应该删除两个观察者并调用完成处理程序.

我的问题是看来观察员没有像我预期的那样被删除.发布通知,并将NSLog条目写入控制台,因此我知道观察者正在工作.但是,在第二次调用时,NSLog被调用两次,第三次调用三次等.

我的想法是,这与从观察者运行的代码块中的删除有关,但是,我不确定如何解决这个问题(如果这确实是问题所在).

有人可以如此善良地解释我是如何实现这一目标的吗?

谢谢.

-(void) application:(UIApplication *)application performFetchWithCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {

    [[NSNotificationCenter defaultCenter] addObserverForName:@"fetchDidCompleteNewData" object:nil
                                                     queue:nil usingBlock:^(NSNotification *completed) {

                                                         //Remove Observers
                                                         [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                         name:@"fetchDidCompleteNewData"
                                                                                                       object:nil];
                                                         [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                         name:@"fetchDidCompleteNoData"
                                                                                                       object:nil];


                                                         // Post completion
                                                         completionHandler(UIBackgroundFetchResultNewData);
                                                         NSLog(@"Background fetch completed... New Data");
                                                     }];

    [[NSNotificationCenter defaultCenter] addObserverForName:@"fetchDidCompleteNoData" object:nil
                                                       queue:nil usingBlock:^(NSNotification *completed) {

                                                           //Remove Observers
                                                           [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                           name:@"fetchDidCompleteNoData"
                                                                                                         object:nil];

                                                           [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                           name:@"fetchDidCompleteNewData"
                                                                                                         object:nil];

                                                           //post completion
                                                           completionHandler(UIBackgroundFetchResultNoData);
                                                           NSLog(@"Background fetch completed... No New Data");

                                                       }];

    GetDetails *getDetails = [[GetDetails alloc] init];
    [getDetails backgroundRefresh]; …
Run Code Online (Sandbox Code Playgroud)

objective-c observers nsnotificationcenter ios

3
推荐指数
1
解决办法
1095
查看次数

如何从订单ID Magento获取所有订单详细信息,包括付款客户和运输详细信息

我需要获取所有订单详细信息,其中包括所有付款详细信息,客户详细信息和送货详细信息,或说明订单的所有详细信息.为此我在配置文件中使用了一个事件

checkout_onepage_controller_success_action 
Run Code Online (Sandbox Code Playgroud)

我的观察者文件中的函数是

public function getorderrealid($observer) {

    print_r($observer->getData());
}
Run Code Online (Sandbox Code Playgroud)

函数触发正确,但它返回以下数组

Array
(
    [event] => Varien_Event Object
        (
            [_observers:protected] => Varien_Event_Observer_Collection Object
                (
                    [_observers:protected] => Array
                        (
                        )

                )

            [_data:protected] => Array
                (
                    [order_ids] => Array
                        (
                            [0] => 66
                        )

                    [name] => checkout_onepage_controller_success_action
                )

            [_hasDataChanges:protected] => 
            [_origData:protected] => 
            [_idFieldName:protected] => 
            [_isDeleted:protected] => 
            [_oldFieldsMap:protected] => Array
                (
                )

            [_syncFieldsMap:protected] => Array
                (
                )

        )

    [order_ids] => Array
        (
            [0] => 66
        )

)
Run Code Online (Sandbox Code Playgroud)

它只提供订单ID.

请建议我如何获得订单的所有细节.

get observers magento detail

3
推荐指数
1
解决办法
3448
查看次数

AVPlayer删除了periodicTimeObserver

我在阻止AVPlayers时间观察者时遇到困难.

我有一个像这样运行的AVPlayer播放器:

player = [[AVPlayer alloc] initWithURL:[NSURL fileURLWithPath:path]];
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个观察者

    [player addPeriodicTimeObserverForInterval:CMTimeMake(3, 10) queue:NULL usingBlock:^(CMTime time){
        NSTimeInterval seconds = CMTimeGetSeconds(time);
    NSLog(@"observer called");
        for (NSDictionary *item in robotR33) {
            NSNumber *time = item[@"time"];
            if ( seconds > [time doubleValue] && [time doubleValue] >= [lastTime doubleValue] ) {
               // NSLog(@"LastTime: %qi", [lastTime longLongValue]);
                lastTime = @(seconds);
                NSString *str = item[@"line"];
                [weakSelf nextLine:str];
               // NSLog(@"item: %qi", [time longLongValue]);
               // NSLog(@"Seconds: %f", seconds)
            };
        }
    }];
    [player play];
Run Code Online (Sandbox Code Playgroud)

一旦我完成了播放器,我就这样做了:

[player pause];
[player removeTimeObserver:self.timeObserver]
player = …
Run Code Online (Sandbox Code Playgroud)

observers avfoundation ios avplayer

3
推荐指数
1
解决办法
6710
查看次数

当AVPlayer准备播放时,AVPlayer的addObserver永远不会被调用?

我已经将观察者添加到AVPlayer但是当avplayer状态准备就绪时它没有调用该函数.当视频开始播放时,该函数调用两次,但AVPlayer的持续时间参数都返回'nan',而我需要在AVPlayer准备播放时获得持续时间.

    playerController.player = player
    self.addChildViewController(playerController)
    self.view.addSubview(playerController.view)
    playerController.view.frame = self.view.frame
    playerController.showsPlaybackControls = false
    player.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
    player.play()

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
    if player.currentItem?.status == AVPlayerItemStatus.ReadyToPlay {
      print("a")  
    }
}
Run Code Online (Sandbox Code Playgroud)

observers ios avplayer swift ios9.1

3
推荐指数
1
解决办法
5385
查看次数

当我返回到 Fragment 时,立即调用观察者

我有一个观察者,而不是当它被称为更改片段时。

问题是当我返回时,立即调用观察者,并且我的应用程序崩溃了

java.lang.IllegalArgumentException:导航目标 com.superapps.ricardo.tablepro:id/action_searchFragment_to_yourGameList2 对于此 NavController 来说是未知的。

我不明白为什么会这样称呼它。

这是更改列表的唯一方法

override fun onSuccess(gamePair: Pair<Int, List<BggGame>>) {
        CoroutineScope(Main).launch{
            //goToList(gamePair.second, binding.input.text.toString())
            viewModel.setGameList(gamePair.second)
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是视图模型创建和更改片段代码

override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        viewModel = ViewModelProviders.of(this).get(SearchViewModel::class.java)
        viewModel.gameList.observe(viewLifecycleOwner, Observer {
            goToList(it, binding.input.text.toString())
        })
    }


    private fun goToList(games: List<BggGame>, user: String) {
        val action = SearchFragmentDirections.actionSearchFragmentToYourGameList2(user)
        val gameList = GameList()
        gameList.gameList = games
        action.gameList = gameList

        try {
            Navigation.findNavController(view!!).navigate(action)
            viewModel.gameList.removeObservers(viewLifecycleOwner)
        } catch (e: Exception){
            Log.e("a0,","a..", e)
        }
        progressDialog.dismiss()

    }
Run Code Online (Sandbox Code Playgroud)

android observers kotlin

3
推荐指数
1
解决办法
1644
查看次数

我们可以在 Laravel 的 Attach 方法上使用观察者吗?

我想观察一个数据透视表,其中的行是在特定模型中使用附加方法创建的,有没有办法通过负责创建行的附加方法来观察该数据透视表?

pivot-table observers observer-pattern laravel laravel-8

3
推荐指数
1
解决办法
1633
查看次数

当应用程序来自后台时,观察者总是被触发

livedata在 viewpager 中的 Fragment 中使用 。我观察 liveDataonActivityCreated()并在列表中显示数据。到目前为止一切顺利,我没有任何问题。另一方面,当我将应用程序置于后台并返回到 viewpager 的任何页面时,会Observer再次调用,我不明白为什么!请帮助我理解。我什至没有浏览onResume()相关片段。

android observers android-livedata

2
推荐指数
1
解决办法
3256
查看次数