草庐IT

Delegates

全部标签

ruby-on-rails - 为什么在私有(private)部分中声明委托(delegate)方法时是公开的?

我可以通过将声明放在中使attr_reader(以及相关的attr_writer和attr_accessor)方法私有(private)私有(private)部分:classFooprivateattr_reader:bendFoo.new.b#=>NoMethodError:privatemethod`b'calledfor#但是,Rails的delegate和Ruby标准库的def_delegate不要这样工作。这些委托(delegate)方法始终是公共(public)的。classFooattr_reader:bdefinitialize@b='b'endendrequire'f

ruby - Rails 委托(delegate)方法如何工作?

在阅读了下面jvans的回答并多看了几次源代码之后,我现在明白了:)。如果有人仍然想知道Rails委托(delegate)的工作原理。Rails所做的只是在您运行委托(delegate)方法的文件/类中使用(module_eval)创建一个新方法。例如:classAdelegate:hello,:to=>:bendclassBdefhellophelloendend当委托(delegate)被调用时,rails将在类A中创建一个带有(*args,&block)的hello方法(从技术上讲,在类A写入的文件中),在该方法中,rails所做的一切都是使用“:到”值(它应该是一个对象或一个已

ruby - 将委托(delegate)方法设为私有(private)

我委托(delegate)了几个方法,还希望它们都是私有(private)的。classWalrusdelegate:+,:to=>:bubblesdefbubbles0endend我可以说private:+,但我必须为每个方法都这样做。有没有办法返回委托(delegate)方法列表或让委托(delegate)创建私有(private)方法? 最佳答案 因为delegate返回传入的符号列表,您可以像这样链接方法调用:private*delegate(:foo,:bar,:to=>:baz)

ruby-on-rails - 带有委托(delegate)和条件的事件记录

是否可以在您的ActiveRecord模型中使用委托(delegate)并在其上使用类似:if的条件?classUser:master,:if=>:has_master?belongs_to:master,:class_name=>"User"defhas_master?master.present?endend 最佳答案 不,你不能,但你可以传递:allow_nil=>true选项以在master为nil时返回nil。classUser:master,:allow_nil=>true#...enduser.master=nilus

javascript - 删除特定对象上的 jQuery 委托(delegate)事件处理程序

我已使用单个选择器将委托(delegate)事件处理程序附加到页面上的多个元素。由于事件是为单个元素触发的,所以我想仅根据某些条件逻辑关闭该元素的事件处理程序。这意味着我不一定要在第一次点击时禁用该事件。但如果不关闭所有这些,我不知道该怎么做。HTML:OneTwoThreeJS:$(document).on('click','button',function(ev){//doesn'tworkbecauseargumentneedstobeastring$(document).off('click',$(ev.target));//doesn'tdowhatIwantb/cturns

javascript - jquery delegate() 事件(mouseover mouseout)触发两次

我有以下脚本总是两次触发鼠标悬停和鼠标移出!你建议我做错了什么(解除绑定(bind),返回例如)?我尝试了一些东西但是没有任何帮助。代码如下:$('#container').delegate('div.showmenu','mouseovermouseentermouseoutmouseleave',function(e){if(e.type==='mouseover'||e.type==='mouseenter'){//jIErequiresmouseenter,doesnotfiremouseoverif($(this).parents().closest('div').hasCl

asp.net - 我可以获得有关 JavaScript 委托(delegate)的一些建议吗?

我对JavaScript中的委托(delegate)和闭包生疏了,我想我遇到过我想尝试使用其中之一或两者的情况。我有一个网络应用程序,它的行为很像一个表单应用程序,字段访问服务器以更改每个onBlur或onChange上的数据(取决于表单元素)。我使用ASP.NET3.5的Web服务和jQuery来完成大部分工作。您需要了解的示例内容:isBlocking()是一种简单的机制来形成一些同步的函数(如互斥量)isDirty(el)检查以确保元素的值在浪费对服务器的调用之前实际更改Agent()返回WebService代理类的单例实例getApplicationState()将base-6

javascript - 如何仅处理子元素的委托(delegate)事件?

当使用.on委托(delegate)事件时,我如何定位子元素:我试过:childSelector=>*>:nth-child(n)但是当我从>开始时没有选择任何东西。$(selector).on(event,childSelector,handler);有时我想针对直接child,有时我不想:(伪代码)varfunc=function(selector,subSelector){$(selector).on("click",subSelector,function(){alert("mysubSelectorisclicked");});}func("#wrapper","direct

Windows 窗体 : thread safe access to GUI?

在过去的几个小时里,我一直在努力处理委托(delegate)和访问Windows窗体控件(C++),其中我使用了本教程(第一个线程安全方法):http://msdn.microsoft.com/en-us/library/ms171728.aspx#Y190更改文本框和标签非常有效,但是当我想从另一个线程显示或隐藏整个GUI时,这会失败。我使用以下方法(它是GUI类的一部分):System::VoidUI::showUI(booleanvalue){if(this->InvokeRequired){SetTextDelegate^d=gcnewSetTextDelegate(this,

c# - 在 C# 中将 Windows 键用于其他目的

有没有办法禁用Windows键的标准内置功能(打开开始菜单)并激活而不是激活该功能,例如C#中的委托(delegate)或事件?我想将其用作全屏应用程序中的附加键。 最佳答案 钩子(Hook)。http://www.codeproject.com/KB/cs/globalhook.aspx 关于c#-在C#中将Windows键用于其他目的,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio