gpt4 book ai didi

asp.net-mvc-3 - knockout js和全局化

转载 作者:行者123 更新时间:2023-12-03 23:15:15 27 4
gpt4 key购买 nike

我不知道如何使用 knockout js 和非美国语言环境来处理计算。我的逗号是 , 并且使用 jquery.globalization 插件正确验证,但 knockout 计算给了我一个 NaN。 knockout js 是否以任何方式支持这一点,或者它是否存在任何解决方法?

示例:

使 knockout js 站点上的 cartEditor 示例工作,允许数量字段中的十进制值并允许全局化输入(作为逗号符号)和输出格式

http://knockoutjs.com/examples/cartEditor.html

我需要它才能在 asp.net mvc 3 站点上工作,因为我正在使用 nb-NO 文化运行该站点,并且模型绑定(bind)器是预期的,作为逗号符号

最佳答案

我通过编写一个包装 autoNumeric.js 的自定义绑定(bind)来完成类似的操作。用于格式化。 (gist)

ko.bindingHandlers.autoNumeric = function ($) {

function getElementValue(el) {
return parseFloat(el.autoNumericGet(), 10);
}

function getModelValue(accessor) {
return parseFloat(ko.utils.unwrapObservable(accessor()), 10);
}

return {
init: function (el, valueAccessor, bindingsAccessor, viewModel) {
var $el = $(el),
bindings = bindingsAccessor(),
settings = bindings.settings,
value = valueAccessor();

function updateModelValue() {
value(getElementValue($el));
};

$el.autoNumeric(settings);
$el.autoNumericSet(getModelValue(value), settings);
$el.change(updateModelValue);
},
update: function (el, valueAccessor, bindingsAccessor, viewModel) {
var $el = $(el),
newValue = getModelValue(valueAccessor()),
elementValue = getElementValue($el),
valueHasChanged = (newValue != elementValue);

if ((newValue === 0) && (elementValue !== 0) && (elementValue !== "0")) {
valueHasChanged = true;
}

if (valueHasChanged) {
$el.autoNumericSet(newValue);
setTimeout(function () { $el.change() }, 0);
}
}
};
}

使用此自定义 autoNumeric 绑定(bind)的数据绑定(bind)如下所示:
<input data-bind="autoNumeric:amount, settings:{aSign:'$'}" />

查看 autoNumeric.js 广泛的格式化选项,看看你可以用这些设置做什么。

关于asp.net-mvc-3 - knockout js和全局化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423860/

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