js:当按钮被点击时,调用一个带有数据绑定参数的函数
Rivets.js: When button is clicked, call a function with an argument from a data binding
这太让人生气了。看起来应该这么简单,但是我找不到魔法咒语。
下面是我需要做的要点:
<div rv-each-thing="data.things">
<input type=button value="Click" onclick="abc( {thing} )">
</div>
这应该说明我需要做什么。
下面是铆钉网站事件处理程序的默认配置:
// Augment the event handler of the on-* binder
handler: function(target, event, binding) {
this.call(target, event, binding.view.models)
}
因此,除了事件对象之外,您还可以作为第二个参数获得与特定绑定相关的模型的引用。
使用which可以访问特定对象
例如 <div rv-each-thing="data.things">
<input type=button value="Click" rv-on-click="abc">
</div>
function abc(event,rivetsBinding){
rivetsBinding.thing //heres your thing :)
}
对不起,如果我迟到了,刚刚开始使用铆钉和遇到同样的问题。
解决方案:先绑定你的函数
例如你有一个函数:
function customOnClickCallback(event, item) {
console.log(event);
console.log(item);
console.log(item.thing); // Instead of {{ thing }}
}
首先绑定要调用的函数(现在我将把它绑定到Body):
rivets.bind(document.getElementsByTagName("body")[0], {
customOnClick: customOnClickCallback
});
则可以使用customOnClick
作为rv-on-click
<input type=button value="Click" rv-on-click="customOnClick">
至于访问变量thing
,它应该可以作为item.thing
访问。
我是怎么做到的。只需复制并粘贴
下面的工作示例解决方案1
<body>
<div rv-each-book="model.books">
<button rv-on-click="model.selectedBook | args book">
Read the book {book}
</button>
</div>
</body>
<script type="text/javascript">
rivets.formatters["args"] = function (fn) {
var args = Array.prototype.slice.call(arguments, 1);
return function () {
return fn.apply(null, args);
};
};
rvBinder = rivets.bind(document.body, {
model: {
selectedBook: function (book) {
alert("Selected book is " + book);
},
books: ["Asp.Net", "Javascript"]
}
});
</script>
或者另一种方法是binding event
解决方案2
<body>
<div rv-each-book="books">
<a rv-cust-href="book">
Read the book {book}
</a>
</div>
</body>
<script type="text/javascript">
rivets.binders['cust-href'] = function (el, value) {
//el.href = '/Books/Find/' + value;
//OR
el.onclick = function () { alert(value); };
}
rvBinder = rivets.bind(document.body, {
books: ["Asp.Net", "Javascript"]
});
</script>
相关文章:
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 在href跳转到另一个html元素之前,执行Knockout.js数据绑定:点击函数
- 为什么我的数据绑定到一个计算函数不起作用(使用knockout.js和jade)
- Angular.js中的一个函数的数据绑定
- 如何在一个元素上具有多个数据绑定属性
- 角度数据绑定一个使用“控制器作为”语法
- 如何在数据绑定后在 KNOCKOUT js 中使用“with”访问另一个原型对象
- “数据绑定”是否是一个严格的仅淘汰属性
- 我得到了一个JSON/Javascript对象,因为我可以在控制台中看到它,但我如何让它序列化并使我的数据绑定到我的Ui
- 如何在每个表行上放置click事件,并将结果作为参数传递,以将新数据绑定到另一个源
- 聚合物网络组件数据绑定一个js对象/数组
- 在html表的foreach绑定中,是否有可能将数据绑定到一个带有knockout的select下拉列表?
- 聚合数据绑定到一个方法
- js:当按钮被点击时,调用一个带有数据绑定参数的函数
- 如何使用angular数据绑定将一个复选框绑定到一个select disabled属性
- 使用清除在一个页面中实现多个自动刷新数据绑定
- 删除数据绑定一个串接的字符串数组
- AngularJS:如何在两个隔离的控制器和一个共享服务之间创建一个双向数据绑定
- 另一个数据绑定中的 AngularJS 数据绑定
- 取消隐藏一个数据绑定的东西(ng-model或{{food.Foo}})会破坏绑定