取消与映射插件的点击绑定
Knockout click binding with mapping plugin
我试图使用单击绑定来增加和减去一个文本绑定中的值。我不确定如何引用myNumber
html:<a data-bind="click: increment">
<i class="fa fa-chevron-up"> </i>
</a>
<div data-bind="text: myNumber"></div>
<a data-bind="click: subtract">
<i class="fa fa-chevron-down"> </i>
</a>
js:
<script type="text/javascript">
function increment(result){
result.myNumber ++;
}
function subtract(result){
result.myNumber --;
}
$.getJSON("/app/api/", function(result) {
function viewModel() {
return ko.mapping.fromJS(result);
};
ko.applyBindings(new viewModel());
})
.error(function () { alert("error"); });
</script>
你不能把一个可观察对象当作一个数字来递增。它是一个setter/getter。此外,您绑定的函数需要成为视图模型的一部分。您可以在applyBindings
之前的getJSON
回调中执行此操作。
vm = {
myNumber: ko.observable(3),
increment: function(result) {
result.myNumber(result.myNumber() + 1);
},
subtract: function(result) {
result.myNumber(result.myNumber() - 1);
}
};
ko.applyBindings(vm);
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<a href="#" data-bind="click: increment">
<i class="fa fa-chevron-up"> </i>
</a>
<div data-bind="text: myNumber"></div>
<a href="#" data-bind="click: subtract">
<i class="fa fa-chevron-down"> </i>
</a>
相关文章:
- 如何将 devbridge/jQuery-Autocomplete 插件绑定到 RequireJS
- 有没有一种方法可以重新绑定jQuery插件中引用的事件处理程序
- 如何在没有任何浏览器插件的情况下调试AngularJS绑定{{expression}}
- 取消绑定/绑定单击jquery selectbox插件
- Jquery插件绑定更改事件
- Backbone.js的Backbone.Modelbinding插件中是否有绑定的转换器参数
- jquery没有解除绑定一个“;调整大小”;在插件中完成绑定
- 如何在我的自定义插件中绑定调整大小事件
- Vue.js插件中的绑定上下文
- 使用 KnockoutJS 映射插件时绑定损坏
- jQuery插件样板 - 具有绑定范围的私有方法
- 如何将一个事件绑定两次到 JavaScript 插件
- KnockoutJS与jQuery数据表和绑定插件,行单击传递整个数组而不是单个模型
- 添加/委派/绑定更改事件到所选插件
- 如何使用 knockoutjs 映射插件对绑定到表的数据进行排序
- 如何在 Angular 应用程序中绑定图形度量 jquery 插件
- 自定义 ngModel 指令以支持 jquery 插件中的模型>视图绑定
- Jquery插件菜单 - 绑定或实时
- 代码镜像自动完成插件事件绑定
- RequireJS:绑定插件模块