这是我在做什么,
在这个事件下: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)
但是订单状态还没有到来,有什么建议吗?提前致谢
Magento有观察员来检测结账过程的开始吗?这包括点击页面checkout/onepage/或checkout/onestepcheckout/.如果可能的话,我想避免重写控制器.
我想知道如何在我的网站上实时推送内容..我已经研究了一段时间,我意识到有很多方法可以完成这项工作.
首先考虑一些问题:我有一个带有一些社交功能的Rails 3应用程序.我想要实现的功能之一是在创建新活动时通知我的用户.我的第一种方法是实现SSE和一个控制器,在最后一次加载的活动之后在DB中搜索新的注册表.
这可以工作,但这需要太多的数据库查询,我只需要在创建新活动时将活动推送到所有活动用户(与该活动相关),而无需进行数据库查询.
我的第二种方法是创建一个指向控制器的路由,一个观察者捕获何时创建一个新活动,稍后将创建的当前活动传递给控制器,最后通过SSE渲染活动部分.
这是我的问题..如何将观察者与控制器连接并将其传递给要呈现的当前活动?在那里,我可以使用其他控制器类型,如金属控制器甚至抽象控制器类型?
在这一点上,我意识到这可能是另一种做这项工作的方法.如果我能找到一种方法来做到这一点而不必用另一种语言或框架开发它真的很好..我认为应该有一个宝石这可以让实时应用程序更容易..你怎么看?我是正确的方式或我应该做什么来实现这一目标?非常感谢!!
我在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) 我需要获取所有订单详细信息,其中包括所有付款详细信息,客户详细信息和送货详细信息,或说明订单的所有详细信息.为此我在配置文件中使用了一个事件
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.
请建议我如何获得订单的所有细节.
我在阻止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) 我已经将观察者添加到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) 我有一个观察者,而不是当它被称为更改片段时。
问题是当我返回时,立即调用观察者,并且我的应用程序崩溃了
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) 我想观察一个数据透视表,其中的行是在特定模型中使用附加方法创建的,有没有办法通过负责创建行的附加方法来观察该数据透视表?
我livedata在 viewpager 中的 Fragment 中使用 。我观察 liveDataonActivityCreated()并在列表中显示数据。到目前为止一切顺利,我没有任何问题。另一方面,当我将应用程序置于后台并返回到 viewpager 的任何页面时,会Observer再次调用,我不明白为什么!请帮助我理解。我什至没有浏览onResume()相关片段。