gpt4 book ai didi

javascript - Knockout 共享绑定(bind)处理程序

转载 作者:搜寻专家 更新时间:2023-11-01 04:31:46 25 4
gpt4 key购买 nike

我目前正在 Knockout 中构建一个数字繁重的应用程序。在我的应用程序中,有三种类型的数字:百分比、小数和大数字,我为每种类型都有自定义绑定(bind)处理程序。

对于输入,我还创建了一个数字验证绑定(bind)处理程序,它读取每个按键以确保输入的是一个数字。 (在应用程序中有华丽的边框 CSS 动画和其他东西 - 这只是一个简单的例子)。

现在要让输入执行验证检查和数字格式设置,我必须绑定(bind)变量两次,您将在下面的 fiddle 中正确看到。

<input data-bind="number: testdata, percentage: testdata">

我认为这不必要地膨胀了我的 HTML 标记,必须有一种更简洁的方法来同时触发两个处理程序。

我的问题:是否可以将数字验证脚本创建为一个函数,然后可以将其共享/包含在数字格式化处理程序中;不会让我的 Javascript 膨胀?

我还是 Knockout 的新手,所以我仍然不确定它的界限。

参见 fiddle :http://jsfiddle.net/axV6S/1/

最佳答案

是的,您可以将数字 init 提取到它自己的函数中,即更改此:

ko.bindingHandlers.number = {
init: function (element) {
/* ... */
}
};

进入这个:

var numberInit = function(element) {
/* ... */
};

只需像这样从您的其他 init 调用它:

init: function(element, valueAccessor) {
numberInit(element);
/* ... */
}

或者如果您想保留正确的“this”上下文:

init: function(element, valueAccessor) {
numberInit.apply(this,arguments);
/* ... */
}

关于javascript - Knockout 共享绑定(bind)处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23267460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com