标签: bind

我什么时候应该使用std :: bind?

每次我需要使用时std::bind,我最终都会使用lambda.那么我std::bind什么时候应该使用?我刚刚从一个代码库中删除它,我发现lambdas总是更简单,更清晰std::bind.是不是std::bind完全没必要?它不应该在将来被弃用吗?我std::bind什么时候应该更喜欢lambda函数?(必须有一个原因,它与lambda一起进入标准.)

我也注意到越来越多的人熟悉lambdas(所以他们知道lambdas做了什么).但是,很少有人熟悉std::bindstd::placeholders.

c++ lambda bind standard-library c++11

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

javax.xml.bind.JAXBException在模块路径或类路径上找不到JAXB-API的实现

我正在尝试在Java 9上运行我的Spring Boot应用程序,并且我遇到了JAXB问题,该问题在指南中有所描述,但对我来说并不适用.我添加了对JAXB api的依赖,应用程序开始工作.如果您收到以下异常,则由于缺少使用Java版本> = 9的JAXB缺失实现:

javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:177) ~[jaxb-api-2.3.0.jar:2.3.0]
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:364) ~[jaxb-api-2.3.0.jar:2.3.0]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508) ~[jaxb-api-2.3.0.jar:2.3.0]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:465) ~[jaxb-api-2.3.0.jar:2.3.0]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:366) ~[jaxb-api-2.3.0.jar:2.3.0]
    at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.<init>(WadlApplicationContextImpl.java:107) ~[jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.wadl.WadlFactory.init(WadlFactory.java:100) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.RootResourceUriRules.initWadl(RootResourceUriRules.java:169) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:106) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) [jersey-core-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790) [jersey-server-1.19.1.jar:1.19.1]
    at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509) [jersey-servlet-1.19.1.jar:1.19.1]
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339) [jersey-servlet-1.19.1.jar:1.19.1]
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605) [jersey-servlet-1.19.1.jar:1.19.1]
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) [jersey-servlet-1.19.1.jar:1.19.1]
    at …
Run Code Online (Sandbox Code Playgroud)

xml bind exception jaxb java-9

36
推荐指数
4
解决办法
3万
查看次数

以编程方式删除焦点?

我有一个jquery ui对话框,其中包含动态加载的选项卡/带有内容的JSON.由于复杂性,我无法发布小提琴或相关代码(代码太多).

发生的事情是,当对话框打开时,您可以选中对话框中的元素,直到第一个选项卡.之后,您无法通过标签浏览到其他任何地方.焦点锁定在该选项卡上,即使您单击其他位置,焦点也会锁定在该选项卡上.

我无法找到此问题的实际原因.

那么,我将如何以编程方式删除焦点?

javascript jquery bind focus

35
推荐指数
1
解决办法
5万
查看次数

JQuery事件模型并防止重复处理程序

我再次想要使用$("divid").load(...)将包含其自己脚本的页面加载到div中.我面临的问题与事件有关.假设我们从父页面和我们绑定的加载页面("猴子")触发("猴子")并且只是做一个警报("猴子绑定").如果多次调用相同的load方法,则会多次调用bind.现在我可以在绑定之前取消绑定它,或者在绑定之前检查处理程序的数量,然后不绑定它以防止这种情况.这两个选项都不是可伸缩的,如果我以后想要绑定到另一个"子页面"(加载到div中的页面)中的触发器.

我理想的做法是检查我即将添加的处理程序是否已经存在,但我仍然想要使用匿名处理程序...(我想的最后一个请求有点问).目前我有一个解决方法,使用预定义/命名方法,然后在绑定之前检查它.

// Found this on StackOverflow
function getFunctionName(fn)
{
 var rgx = /^function\s+([^\(\s]+)/
 var matches = rgx.exec(fn.toString());
 return matches ? matches[1] : "(anonymous)"
}

function HandlerExists(triggerName, handlerName) {
        exists = false;
        if ($(document).data('events') !== undefined) {
            var event = $(document).data('events')[triggerName];
            if(event !== undefined)
            {
                $.each(event, function(i, handler) {
                    alert(handlerName);
                    if (getFunctionName(handler) == handlerName) {
                        exists = true;
                    }
                });
            }
        }
        return exists;
    }
Run Code Online (Sandbox Code Playgroud)

这是一种非常粗暴的方式,我觉得,但似乎工作.我只是在绑定之前执行以下操作:

if (!HandlerExists("test", "theMethod")) {
    $(document).bind("test", theMethod);
}
Run Code Online (Sandbox Code Playgroud)

有没有人有更优雅的解决方案?例如,有没有办法检查特定的脚本是否已加载?所以我可以使用getScript()在第一次加载时从子页面加载js,然后根本不加载它在后续加载(并且只是触发一个触发器,由他预先存在的js处理).

javascript jquery events triggers bind

33
推荐指数
4
解决办法
4万
查看次数

什么将Rails服务器绑定到0.0.0.0会给你买?

我使用"www.xip.io"作为DNS通配符在不同设备上进行测试.我将主域名设置为我的IP地址.我启动了一个rails服务器,bundle exec rails server我去了这里www.<ip_address>.xip.io:3000,注意我的rails服务器没有响应.

但是,如果我将我的rails服务器绑定到0.0.0.0 bundle exec rails server -b 0.0.0.0,那就可以了!我不明白0.0.0.0告诉我的服务器这个是什么工作.有人能理解这个吗?

dns bind ruby-on-rails server

33
推荐指数
1
解决办法
9945
查看次数

检测用户向下滚动或向上滚动jQuery

可能重复:
区分jquery中的向上/向下滚动?

是否可以检测用户是向下滚动还是向上滚动?

示例:

$(window).scroll(function(){

    // IF USER SCROLL DOWN 
           DO ACTION

    // IF USER SCROLL UP 
           DO ANOTHER ACTION

});
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery events scroll bind

32
推荐指数
1
解决办法
15万
查看次数

'call/apply'和'bind'之间的区别是什么?

var obj = {
   x: 81,
   getX: function() { 
     console.log( this.x) 
   }
};
var getX = obj.getX.bind(obj);//use obj as 'this';
getX();//81
var getX = function(){
  obj.getX.apply(obj); 
}
getX();//also 81
Run Code Online (Sandbox Code Playgroud)

bind和call/apply的使用看起来很相似,我想知道它们之间有什么区别.上面的两个getX函数是一样的吗?

javascript bind function call apply

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

Blazor:在使用 @bind 时如何在 &lt;select&gt; 中使用 onchange 事件?

我需要能够在<select>. 问题是我也绑定了@bind,当我尝试使用@onchange 时出现错误,指出@bind 已经在使用它。我尝试使用@onselectionchange,但这没有任何作用(不运行该功能)。我可以忘记@bind 而只是将@onchange 分配给一个函数,但我不确定如何将选定的值传递给该函数。

我有以下代码:

<select @bind="@SelectedCustID" @ @onchange="@CustChanged" class="form-control">
    @foreach (KeyGuidPair i in CustList)
    {
        <option value="@i.Value">@i.Text</option>
    }
</select>
Run Code Online (Sandbox Code Playgroud)

谢谢。

select bind onchange blazor

32
推荐指数
6
解决办法
3万
查看次数

SQLite:将值列表绑定到"WHERE col IN(:PRM)"

我想做的就是发送一个查询

SELECT * FROM table WHERE col IN (110, 130, 90);
Run Code Online (Sandbox Code Playgroud)

所以我准备了以下声明

SELECT * FROM table WHERE col IN (:LST);
Run Code Online (Sandbox Code Playgroud)

然后我用

sqlite_bind_text(stmt, 1, "110, 130, 90", -1, SQLITE_STATIC);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这变成

SELECT * FROM table WHERE col IN ('110, 130, 90');
Run Code Online (Sandbox Code Playgroud)

并且没用(请注意另外两个单引号).我已经尝试在字符串中添加额外的'但它们会被转义.我没有找到关闭转义或防止文本被单引号括起来的选项.我能想到的最后一件事是没有使用准备好的声明,但我只把它作为最后一个选项.你有什么想法或建议吗?

谢谢

编辑:

参数的数量是动态的,因此它可能是三个数字,如上例所示,一个或十二个.

sqlite select bind prepared-statement

29
推荐指数
5
解决办法
3万
查看次数

在Javascript中绑定更多已绑定函数的参数

我试着对javascript的bind()如何工作进行排序.

如果我这样做,我会看到

var f = function (a) { ... }
var g = f.bind(obj);
g(1)
Run Code Online (Sandbox Code Playgroud)

然后用objas as this1as 调用f a.

我认为g是围绕f的包装函数.

但是,当我这样做

var f = function (a) { ... }
var g = f.bind(obj);
g.call(1)
Run Code Online (Sandbox Code Playgroud)

然后使用1as thisaundefined 调用f .

因此,似乎g不仅仅是一个简单的包装器,而且call以某种方式区分正常和绑定函数.

还有一件事是我不能多次部分应用一个函数.

var f = function (a) { ... }
var g = f.bind(obj);
var h = g.bind(1);
h();
Run Code Online (Sandbox Code Playgroud)

然后使用objas thisaundefined 调用f . …

javascript bind call

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