我有一个 TaffyDB,其中包含 RPG 项目的配方。每个项目都有一个布尔值来声明它是否在游戏中“混合”。
var recipes = TAFFY([
{id:0, name:'Potion', mixed:false},
{id:1, name:'Hi-Potion', mixed:false},
{id:2, name:'Mega-Potion', mixed:false}
]);
生成一个 HTML 表格,每个配方都有一个表示“混合”变量的复选框。每个复选框的value=X
位置X
对应于数据库中项目的 ID。我检测到复选框更改并尝试使用以下内容更新数据:
$('input:checkbox').on('change', function() {
var val = $(this).val();
var checked = $(this).is(':checked');
recipes({id:val}).update({mixed:checked});
alert('Updated recipe id: ' + val +
'\nRecipe: ' + recipes({id:val}).first().name +
'\nValue should be ' + checked +
'\nValue is ' + recipes({id:val}).first().mixed);
}
当尝试使用recipes({id:val}).first().name
and获取变量时.mixed
,undefined
总是返回。更新调用也不会更改值。但是,如果我将所有查询更改为recipes({id:0})
,它可以正常工作,但它只报告和更新第一个复选框。
据我所知,它不喜欢 javascript 变量val
,并且checked
在执行诸如 之类的查询时recipes({id:val})
,但对文字0
.
JSFiddle:http: //jsfiddle.net/w6g6W/12/