Jquery 使数组中的所有属性都可见

Jquery 使数组中的所有属性都可见,jquery,knockout.js,Jquery,Knockout.js,我有一个从ajax请求返回的数组。我将这个数组绑定到敲除中的一个可观察数组。我想知道如何迭代数组prefixeData,并使每个元素的属性都可见。这可能吗 var viewModel = { name: "Editor", prefixeData: ko.observableArray([]), getPrefixes: function (prefix) {

我有一个从ajax请求返回的数组。我将这个数组绑定到敲除中的一个可观察数组。我想知道如何迭代数组
prefixeData
,并使每个元素的属性都可见。这可能吗

var viewModel = {
            name: "Editor",                
            prefixeData: ko.observableArray([]),                
            getPrefixes: function (prefix) {                    

                var params = {
                    "prefix": prefix
                };

                $.ajax({

                    type: "POST",
                    url: "XXXX.aspx/GetPrefixes",
                    data: JSON.stringify(params),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: false,
                    success: function (data) {
                        var trans = data.d;
                        if (trans.Successful) {

                          viewModel.prefixeData(trans.ResultObject);
                            // this doesnt work
                          viewModel.prefixeData().forEach(function(data) {
                                data.LevelName=ko.observable(data.LevelName);

                            });
                        } else {
                            //todo
                        }

                    },
                    error: function (xhr, textStatus, err) {

                        alert("Status: " + textStatus); alert("Error: " + err);

                    }

                });
            }
        };

你需要导入knockout.mapping

并编辑您的代码,如:

success: function (data) {
                        var trans = data.d;
                        if (trans.Successful) {
                         var observableArray = ko.mapping.fromJS(trans.ResultObject);
                         viewModel.prefixeData(observableArray());
                        //viewModel.prefixeData now is observableArray, you can call foreach : viewModel.prefixeData at html
                        } else {
                            //todo
                        }

                    },
使用额外的插件: