Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法读取对象的子对象_Javascript_Knockout.js - Fatal编程技术网

Javascript Can';无法读取对象的子对象

Javascript Can';无法读取对象的子对象,javascript,knockout.js,Javascript,Knockout.js,我不确定如何读取属性,我定义了这个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.objec

我不确定如何读取属性,我定义了这个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>

您的警报是在初始化将任何内容推入criterias数组之前触发的,因此yes
criterias()[0]
此时未定义

如果将警报移动到initialize函数中,使其在项目被推入数组后发生,则应该可以看到预期的数据

功能标准(object1、object2、object3、object4){
var self=这个;
self.object1=ko.observable(object1);
self.object2=ko.observable(object2);
self.object3=ko.observable(object3);
self.object4=ko.observable(object4);
}
var vmBudget=函数(){
var self=这个;
this.criterias=ko.observableArray();
this.initialize=函数(){
self.criterias.push(新标准(“test”)、“”、“”、“”、“”);
self.criterias.push(新标准(“,”test2“,”,”);
警报(JSON.stringify(self.criterias()[0].object1());
};
}
var vm=新的vmBudget();
ko.应用绑定(vm);
vm.initialize()

self.criterias似乎是一个数组,但您访问它就像调用函数一样,即self.criterias()。也许可以尝试使用alert(JSON.stringify(self.criterias[0].object1));
{
Object1: ""
Object2: ""
Object3: ""
Object4: ""
}