gpt4 book ai didi

javascript - 初始化 knockout 复选框值

转载 作者:行者123 更新时间:2023-11-28 02:13:30 24 4
gpt4 key购买 nike

我认为这可能更多的是语言问题而不是框架问题,但这里是:

我在设置复选框的初始值时遇到问题。

我添加了 jsFiddle

谢谢!

这是麻烦的代码:

var allPrices = [
{ month: 'January', prices: [ (3, true), (4, false), (4, false), (4, false)] },
{ month: 'February', prices: [(3, true), (4, false), (4, false), (4, false)] },
{ month: 'March', prices: [(3, true), (4, false), (4, false), (4, false)] }
]

//--Page ViewModel
var id = 1;

//--Set the structure for the basic price object
function Price(quote, isChecked) {
this.quote = ko.observable(quote);
this.valid = true;
if (isNaN(quote)) {
this.valid = false;
}
this.selected = ko.observable(isChecked);
this.id = id;
id++;
}

最佳答案

使用语法(3, true),您正在使用 Comma Operator并且不创建对象。

逗号运算符计算其第二个参数(在本例中为 true),因此它不会像您可能期望的那样创建值为 3 和 true 的对象。

您需要使用 {} 创建一个对象,并且还需要一些属性名称,因此您需要将价格重写为:

prices: [ 
{ quote: 3, isChecked: true},
{ quote: 4, isChecked: false},
{ quote: 4, isChecked: false},
{ quote: 4, isChecked: false} ]

并且您需要将价格创建更改为

this.prices = ko.utils.arrayMap(prices, function (item) { 
return new Price(item.quote, item.isChecked);
});

因为 arrayMap 的回调函数接受参数:当前项,并且您可以从当前项访问 quoteisChecked项目。

演示 JSFiddle.

关于javascript - 初始化 knockout 复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730991/

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