所以我有一个收集数组的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",
});
}
这没有任何结果,因为第一级上没有任何东西,因为它现在是一个包含更多对象的对象。那么我如何才能获得数据或最初获得数据?
答案 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];
这将选择第一个对象,以便为您提供其余的对象。