gpt4 book ai didi

javascript - knockout ko.mappings.fromJS 不工作

转载 作者:行者123 更新时间:2023-12-02 06:53:04 26 4
gpt4 key购买 nike

我正在尝试使用 knockout 映射,但它没有像我预期的那样工作。在这里,我创建了我能做的最简单的 fiddle ,但它不起作用。

我错过了什么吗?

https://jsfiddle.net/p48d11j5/1/

function Model(){
var self = this;

self.Id = ko.observable(0);
self.Name = ko.observable("Default");
self.Visible = ko.observable(false);
self.Items = ko.observableArray([]);
}

function ModelItem(){
var self = this;

self.Id = ko.observable(0);
self.Name = ko.observable("Default item name")
}

var m = new Model();

ko.mapping.fromJS({
Id:1,
Name: "Test",
Visible: true,
Items: [
{
Id:1,
Name:"First"
},
{
Id:2,
Name:"Second"
}
]
}, m);

ko.applyBindings(m);

编辑:我正在使用嵌套数组,所以我添加了数组

edit2:我希望“输入”模型以使用它们的函数或 ko.computed 属性

最佳答案

如果你用两个参数调用ko.mapping.fromJS:
ko.mapping.fromJS(data, mappedObject) 第二个参数是一个mappedObject 已经创建。然后第二个参数将被视为 viewModel 而不是 options

您所要做的就是:ko.mapping.fromJS(data, {}, viewModel) - 这会将您的数据放入您的模型中。

ko.mapping.fromJS({
Id:1,
Name: "Test",
Visible: true,
Items: [{Id: 1, Name: "First"}, {Id: 2, Name: "Second"}]
}, {} ,m); // pass the second argument as an empty object.

关于javascript - knockout ko.mappings.fromJS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38506981/

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