lea*_*rrr 5 javascript jquery knockout-2.0 knockout.js
我目前正在Knockout中构建一个重型应用程序.在我的应用程序中有三种类型的数字:百分比,小数和大数字,我有每种类型的自定义绑定处理程序.
对于输入,我还创建了一个数字验证bindingHandler,它读取每个按键以确保它是一个输入的数字.(在应用程序中有华丽的边框CSS动画和东西 - 这只是一个简单的剥离示例).
现在要让输入执行验证检查和数字格式化,我必须将变量绑定两次,正如您在下面的小提琴中正确看到的那样.
<input data-bind="number: testdata, percentage: testdata">
Run Code Online (Sandbox Code Playgroud)
我认为这会不必要地增加我的HTML标记,并且必须有一种更整洁的方式来同时触发两个处理程序.
我的问题:是否可以将数字验证脚本创建为一个函数,然后可以在数字格式处理程序中共享/包含该函数; 没有膨胀我的Javascript?
我仍然是Knockout的新手,所以我仍然不确定它的界限.
是的,您可以将数字 init 提取到它自己的函数中,即更改此:
ko.bindingHandlers.number = {
init: function (element) {
/* ... */
}
};
Run Code Online (Sandbox Code Playgroud)
进入这个:
var numberInit = function(element) {
/* ... */
};
Run Code Online (Sandbox Code Playgroud)
只需从您的其他 init 中调用它,如下所示:
init: function(element, valueAccessor) {
numberInit(element);
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想保留正确的“this”上下文:
init: function(element, valueAccessor) {
numberInit.apply(this,arguments);
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |