Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用自定义参数铆接.js事件处理程序_Javascript_Rivets.js - Fatal编程技术网

Javascript 使用自定义参数铆接.js事件处理程序

Javascript 使用自定义参数铆接.js事件处理程序,javascript,rivets.js,Javascript,Rivets.js,我刚刚开始使用Rivets.js,它看起来很有希望成为简单的数据绑定框架 我已经到了不知道如何在单击活页夹时将“自定义参数”传递到rv的地步,因此我尝试从以下内容中汲取灵感: : 这段代码正在运行,我的问题是:这是正确的方法吗?如果希望将自定义参数传递给事件处理程序,那么这段代码可能更简单: rivets.configure({ // extracted from: https://github.com/mikeric/rivets/issues/258#issuecomment-524

我刚刚开始使用
Rivets.js
,它看起来很有希望成为简单的数据绑定框架

我已经到了不知道如何在单击活页夹时将“自定义参数”传递到
rv的地步,因此我尝试从以下内容中汲取灵感:

:


这段代码正在运行,我的问题是:这是正确的方法吗?

如果希望将自定义参数传递给事件处理程序,那么这段代码可能更简单:

rivets.configure({
    // extracted from: https://github.com/mikeric/rivets/issues/258#issuecomment-52489864
    // This configuration allows for on- handlers to receive arguments
    // so that you can onclick="steps.go" data-on-click="share"
    handler: function (target, event, binding) {
        var eventType = binding.args[0];
        var arg = target.getAttribute('data-on-' + eventType);

        if (arg) {
            this.call(binding.model, arg);
        } else {
            // that's rivets' default behavior afaik
            this.call(binding.model, event, binding);
        }
    }
});
启用此配置后,单击时发送到
rv
处理程序的第一个也是唯一一个参数是单击时
数据指定的值

<a rv-on-click="steps.go" data-on-click="homePage">home</a>
然后您可以访问事件处理程序中的当前“组”对象,如下所示:

var viewModel = {
    addItem: function(ev, view) {
        var group = view.group;
    }
};
关于这项技术的更多细节可以在这里找到


我希望这能有所帮助。

这里还有另一个答案: 姓名:

您可以定义
args
格式化程序:

rivets.formatters.args=函数(fn){
让args=Array.prototype.slice.call(参数,1)
return()=>fn.apply(null,args)
}
然后:

rv-on-click="on_click | args 1"
请注意,
args
不是一个特殊的id,您可以定义任何内容来代替
args

要传递多个参数,请使用空格:
“单击“args 1 2 3'str'”

这是一个有效的参数(sic)-应该有一种方法将参数传递给事件处理程序,但不明显。
var viewModel = {
    addItem: function(ev, view) {
        var group = view.group;
    }
};
rv-on-click="on_click | args 1"