当映射下面的对象时,数组中的空""
值在可观察数组中被映射为false:
var d2 = {
"values": [{"9", false, "", true, null, "", "", ""]
};
var viewmodel2 = ko.mapping.fromJS(d2);
使用ko.mapping.toJSON(viewmodel2);
映射回json时,结果如下:
{ "values": [
"9",
false,
false,
true,
null,
false,
false,
false] }
请注意,数组中的最后3个字符串值将转换回false。
这是一个错误吗?或者是包含bool和不支持的字符串的数组
这是fiddle。
答案 0 :(得分:2)
这确实是一个错误,现在已修复。 这是由两件事引起的:
最新版本1.2.3可在GitHub上获得,并且还创建了一个NuGet包。由Srluisreyes亲切创造的再现jsfiddle现在也有效!
答案 1 :(得分:1)
这似乎确实是一个错误。
我分叉了你的jsFiddle代码,发现问题似乎是当toJSON方法开始解析第一个对象(“”或“false”)并将其他对象(“”或false)视为发现的初始对象时
如果这没有多大意义,请尝试将对象开头的false更改为“”,反之亦然。 http://jsfiddle.net/5HhMn/
您可能想在Steve Sanderson的github页面上发布此问题 https://github.com/SteveSanderson/knockout.mapping