gpt4 book ai didi

javascript - 无法读取对象的子对象

转载 作者:行者123 更新时间:2023-12-03 00:03:46 24 4
gpt4 key购买 nike

我不确定如何读取属性,我定义了这个 javascript 函数

function Criteria(object1, object2, object3, object4) {
var self = this;
self.object1 = ko.observable(object1);
self.object2 = ko.observable(object2);
self.object3 = ko.observable(object3);
self.object4 = ko.observable(object4);
}

然后我定义我的主视图模型如下

   var vmBudget = function () {
var self = this;
this.criterias = ko.observableArray();
this.initialize = function () {
self.criterias.push(new Criteria("test","","",""));
self.criterias.push(new Criteria("", "test2", "", ""));
};
alert(JSON.stringify(self.criterias()[0].object1()));
}

在我的 html 上

<script>
$(document).ready(function () {
var vm = new vmBudget();
ko.applyBindings(vm, document.getElementById("L09budget"));
vm.initialize();
});
</script>

一旦我有了变量Initialie,json就是{},我期待一个像这样的Json

{
Object1: ""
Object2: ""
Object3: ""
Object4: ""
}

最佳答案

在初始化将任何内容插入 criterias 数组之前,您的警报就会触发,因此当时 criterias()[0] 尚未定义。

如果将警报移至初始化函数中,以便在将项目插入数组后发生警报,​​您应该会看到预期的数据。

function Criteria(object1, object2, object3, object4) {
var self = this;
self.object1 = ko.observable(object1);
self.object2 = ko.observable(object2);
self.object3 = ko.observable(object3);
self.object4 = ko.observable(object4);
}

var vmBudget = function() {
var self = this;
this.criterias = ko.observableArray();
this.initialize = function() {
self.criterias.push(new Criteria("test", "", "", ""));
self.criterias.push(new Criteria("", "test2", "", ""));
alert(JSON.stringify(self.criterias()[0].object1()));
};
}

var vm = new vmBudget();
ko.applyBindings(vm);
vm.initialize();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

关于javascript - 无法读取对象的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55070570/

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