gpt4 book ai didi

javascript - Knockout 附加 observables w/characters

转载 作者:行者123 更新时间:2023-11-30 17:30:35 25 4
gpt4 key购买 nike

我的 KnockoutJS 应用程序中有可观察对象,它们的值是从应用程序中全局包含的数组中获取的,例如:

self.observable = ko.observable(App[0].Observable_Value);

为方便起见,假设 Observable_Value = 10。

这正如您所期望的那样工作并且 <input>默认情况下,self.observable 绑定(bind)到的值具有正确的值; 10.

我现在想做的是在 <input> 中附加带有 % 的 observable。因此输入字段中显示的输出将为 10%。

我只是想在输入值后附加一个 %,因为我需要 observable 以数字形式可读,不是字符串以防止稍后出现 NaN 错误应用程序。该应用严重依赖数字。

我已经尝试将此作为具有读/写和 parseFloat 的计算函数来执行此操作,但没有成功。

有什么想法吗?

最佳答案

我认为在这种情况下最好的选择是 custom binding handler .

I simply want to append the input value with a % because I need the observable to be readable as a number and not a string

这正是绑定(bind)处理程序可以做的——保留可观察对象的原始值,但改变它的显示方式。

I've tried doing this as a computed function

虽然计算函数可以解决这个问题,但它通常是不必要的,除非您想实际使用计算函数的返回值。在这种情况下,由于您只想更改视觉显示,因此不需要另一个表示相同值的变量。

这是一个非常的基本方法,它只是在可观察值的前面放置了一个% 符号。 See fiddle

ko.bindingHandlers.percent = {
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var value = ko.unwrap(valueAccessor());
$(element).text('%' + value);
}
};

关于javascript - Knockout 附加 observables w/characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161188/

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