无法读取对象的子项
Can't read child of object
我不确定如何读取属性,我定义了这个 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()[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 函数
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()[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>