如何获取数组并在数据源中使用

时间:2017-04-26 15:06:25

标签: javascript jquery ajax

所以我有一个收集数组的ajax调用:

function test(){
    $.ajax({
        url: '/whatever/here'.
        data: data,
    }).done(function(newData){
        var getArray = newData.SubData;
        newResults.push(getArray); 
    }
}

var newResults = [];

我的问题是我必须保存ajax调用中的数组并在函数外部使用它。因此,通过将其推入新数组,它会创建另一个级别的对象。所以当我进行数据源调用时:

function standardCategoryDropDownEditor(container, options) {
    $("<input data-bind='value:" + options.field + "'/>")
        .appendTo(container)
        .kendoDropDownList({
            dataSource: newResults,
            dataTextField: "Value",
            dataValueField: "Key",
        });
}

这没有任何结果,因为第一级上没有任何东西,因为它现在是一个包含更多对象的对象。那么我如何才能获得数据或最初获得数据?

2 个答案:

答案 0 :(得分:1)

希望我没有误会,但如果newData.SubData是要添加到newResults的数组,但实际上您想要将newData.SubData数组附加到顶层newResults而不是将新数组推入newResults(这将创建一个数组数组),而不是使用concat而不是push。

所以

var getArray = newData.SubData;
newResults.push(getArray); 

变为

var getArray = newData.SubData;
newResults = newResults.concat(getArray); 

答案 1 :(得分:0)

我明白了。它就像给它一个索引一样简单:

 datasource = newResults[0];

这将选择第一个对象,以便为您提供其余的对象。