Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 将JSON映射到ObservalArray时出错_Javascript_Json_Knockout.js - Fatal编程技术网

Javascript 将JSON映射到ObservalArray时出错

Javascript 将JSON映射到ObservalArray时出错,javascript,json,knockout.js,Javascript,Json,Knockout.js,无法将我的JSON数据加载到ko.observearray中,并且不知道原因 $(document).ready(function(){ function Region(uid, name) { this.uid = ko.observable(uid); this.name = ko.observable(name); } function CompanyViewModel() { this.regions = ko.o

无法将我的JSON数据加载到ko.observearray中,并且不知道原因

$(document).ready(function(){
    function Region(uid, name) {
        this.uid = ko.observable(uid);
        this.name = ko.observable(name);
    }

    function CompanyViewModel() {
        this.regions = ko.observableArray([]);
    }

    ko.applyBindings(new CompanyViewModel());   

    // Init.
    $.getJSON( '/regions/', 
        function(data){
            if(data.status == 'ok')
            {
                var mappedData = ko.utils.arrayMap(data.regions, function(item) {
                    return new Region(item.uid, item.name);
                });
                CompanyViewModel.regions( mappedData );
            }
        }
    );
});
调试器显示:未捕获类型错误:对象函数CompanyViewModel()。。。没有“区域”方法


我是新手,肯定有一些明显的错误,但我不知道在哪里。

还没有测试过它,但应该让你了解我的意思,我会这样做:

$(document).ready(function(){
    var Region = function(uid, name) {
        this.uid = ko.observable(uid);
        this.name = ko.observable(name);
    }

    var CompanyViewModel = function() {
        this.regions = ko.observableArray([]);
    }

    var model = new CompanyViewModel();
    ko.applyBindings(model);   

    // Init.
    $.getJSON( '/regions/', 
        function(data){
            if(data.status == 'ok')
            {
                var mappedData = ko.utils.arrayMap(data.regions, function(item) {
                    return new Region(item.uid, item.name);
                });
                model.regions( mappedData );
            }
        }
    );
});

谢谢我希望现在我能理解我的错误。我已经创建了“匿名”viewmodel对象,并尝试从模型定义本身而不是从对象调用方法,对吗?对,您没有处理模型的实例。顺便说一句,如果你不打算改变一个属性(比如一个ID),没有理由把它变成一个可观察的。