在基于多个用户上下文呈现整个页面并发出多个$http请求之后,我希望用户能够切换上下文并再次重新呈现所有内容(重新发送所有$http请求等).如果我只是将用户重定向到其他地方,那么事情就会正常运行:
$scope.on_impersonate_success = function(response) {
//$window.location.reload(); // This cancels any current request
$location.path('/'); // This works as expected, if path != current_path
};
$scope.impersonate = function(username) {
return auth.impersonate(username)
.then($scope.on_impersonate_success, $scope.on_auth_failed);
};
Run Code Online (Sandbox Code Playgroud)
如果我使用$window.location.reload(),那么一些$http请求auth.impersonate(username)等待响应被取消,所以我不能使用它.此外,黑客$location.path($location.path())也不起作用(没有任何反应).
是否有另一种方法可以重新呈现页面而无需再次手动发出所有请求?
我有一个视图叠加在许多其他视图之上.我只是使用过度的方法来检测屏幕上的一些触摸,但除此之外我不希望视图停止下面其他视图的行为,这些是滚动视图等.我怎样才能转发所有的触摸通过这个叠加视图?它是UIView的子项.
在Octave中,我可以抑制或隐藏指令的输出,在一行的末尾添加分号:
octave:1> exp([0 1])
ans = [ 1.0000 2.7183 ]
octave:2> exp([0 1]);
octave:3>
Run Code Online (Sandbox Code Playgroud)
现在,如果函数在返回值之前显示文本(例如使用disp()或print()),我该如何抑制输出?换句话说,我希望能够做到这一点:
disp("Starting...");
% hide text the may get displayed after this point
% ...
% show all text again after this point
disp("Done!");
Run Code Online (Sandbox Code Playgroud) Apple很有趣.我的意思是,他们说这有效:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch* touch = [touches anyObject];
NSUInteger numTaps = [touch tapCount];
if (numTaps < 2) {
[self.nextResponder touchesBegan:touches withEvent:event];
} else {
[self handleDoubleTap:touch];
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个View Controller.如您所知,View Controllers继承自UIResponder.View Controller创建一个继承自UIView的MyView对象,并将其作为子视图添加到它自己的视图中.
所以我们有:
View Controller>有一个View(自动)>有一个MyView(这是一个UIView).
现在在MyView中,我把上面的代码放在一个打印"触摸MyView"的NSLog上.但我将事件转发给下一个响应者,就像上面一样.在ViewController中我有另一个touchesBegan方法,只打印一个NSLog和一个"触摸视图控制器".
现在猜猜:当我触摸MyView时,它会打印出"触摸的MyView".当我触摸MyView的外部,这是VC的视图时,我得到一个"触摸的视图控制器".所以两者都有效!但是什么不起作用是转发事件.因为现在,实际上下一个响应者应该是视图控制器,因为中间没有别的东西.但是当我转发它时,VC的事件处理方法永远不会被调用.
%$&!§!!
想法?
想出奇怪的东西 MyView的下一个响应者是视图控制器的视图.这是有道理的,因为MyView是一个子视图.但是我没有从视图控制器修改这个UIView.这没什么习惯的.它没有实现任何触摸事件处理.消息是否应该传递给视图控制器?我怎么能让它通过?如果我在MyView中删除事件处理代码,那么事件很好地到达视图控制器.
我能够定义这样的方法:
def test(id, *ary, hash_params)
# Do stuff here
end
Run Code Online (Sandbox Code Playgroud)
但这使得hash_params论证成为强制性的.这些也不起作用:
def t(id, *ary, hash_params=nil) # SyntaxError: unexpected '=', expecting ')'
def t(id, *ary, hash_params={}) # SyntaxError: unexpected '=', expecting ')'
Run Code Online (Sandbox Code Playgroud)
有没有办法让它可选?
在rails admin中,您可以为模型及其子项定义导航标签,如下所示:
# in rails_admin.rb
config.model Order do
navigation_label 'Orders related'
end
config.model OrderProducts do
parent Order
end
Run Code Online (Sandbox Code Playgroud)
有没有办法在不创建模型的情况下向导航菜单添加标签(即仅用于分组)?
在一般设置上,我允许纵向和风景左侧,景观控制模式.我想关闭横向模式.在viewController上我写这段代码:
override func shouldAutorotate() -> Bool {
return false
}
Run Code Online (Sandbox Code Playgroud)
但是,自动旋转忽略此功能.如何在swift上禁用和启用自动旋转?IOS编程
给定UserService中的方法:update这里处理错误/异常的最佳方法是什么?
def update(...): Try[User]
Run Code Online (Sandbox Code Playgroud)
这样,我需要定义我的自定义异常,并在需要时将它们放入函数体中.大多数这些异常都是业务错误(例如,user_id无法更改等).这里的重点是无论引发什么异常(业务错误,网络异常,DB IO异常等),以同样的方式对待它们并且只返回Failure(err)- 让上层处理它们.
def update(...): Either[Error, User]
Run Code Online (Sandbox Code Playgroud)
这是无异常的方式.在函数体中,它捕获所有可能的异常并将它们转换为Error,并且对于业务错误,只返回Left[Error].
使用Try对我来说似乎是一种更自然的方式,因为我想处理错误.Either是一个更通用的东西 - Either[Error, T]只是一个特例,我认为Try是为这个特殊情况发明的.但我也读到我们应该避免使用异常进行错误处理......
那么,哪种解决方案更好,为什么呢?
启动 pubsub 模拟器后,我尝试使用 HTTP API 创建主题和订阅。创建主题成功,但我不明白为什么创建订阅失败。我是否做错了什么或者这是工具中的错误?您可以看到以下日志:
$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/topics/mytopic
{
"name": "projects/myproject/topics/mytopic"
}
$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/subscriptions/mysub \
--data '{"topic":"projects/myproject/topics/mytopic"}'
Not Found
Run Code Online (Sandbox Code Playgroud)
在模拟器方面,我看到以下内容:
# create topic logs
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, …Run Code Online (Sandbox Code Playgroud) 在创建一个新的Ruby OpenStruct对象之后,我能够存储属性但不能检索它们(我得到一个空行而是返回nil):
obj = OpenStruct.new # => #<OpenStruct>
obj.x = 10
obj.y = 20
obj # => #<OpenStruct x=10, y=20>
obj.x # => 10
obj.y #
# => nil
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用不同的名称存储其他属性,一切都按预期工作.这个问题似乎只有在我存储一个名为的属性时才会发生y.我使用以下版本:
ruby 1.9.2p320 (2012-04-20 revision 35421) [i686-linux]
有没有人知道发生了什么?
ruby ×3
angularjs ×1
arguments ×1
command-line ×1
dsl ×1
emulation ×1
events ×1
google-cloud-pubsub-emulator ×1
hash ×1
ios ×1
iphone ×1
javascript ×1
methods ×1
navigation ×1
node.js ×1
null ×1
octave ×1
openstruct ×1
rails-admin ×1
reload ×1
rerender ×1
rotation ×1
scala ×1
splat ×1
swift ×1
touch ×1
uiview ×1