【发布时间】:2017-08-12 15:09:44
【问题描述】:
我已经定义了一个JS数组如下:
var forecastJSArray=new Array();
然后我尝试使用 push 将我的 json 对象添加到这个数组中,如下所示:
$.getJSON("api-detail.json")
.then(function (forecast){
$.each(forecast, function() {
self.forecastJSArray.push({
rank: this.rank,
rep: this.rep,
total: this.total,
});
});
})
;
但是当我运行这段代码时,它给了我一个错误: 无法读取未定义类型错误的属性“推送”:无法读取未定义的属性“推送”
我的最终数组应该是这样的:
[
{
"rank" : 1,
"rep" : "rep1",
"total" : 10,
}, {
//...etc
}
]
如果有人能告诉我我哪里出了问题,我将不胜感激。提前非常感谢。
编辑: 代码包含在一个 oracle-jet 视图模型(使用 knockoutjs 视图模型)中,类似于这样,带有一个 RequireJS 块:
define(['ojs/ojcore', 'knockout', 'jquery', 'ojs/ojselectcombobox',
'ojs/ojtable', 'ojs/ojbutton'], function(oj, ko, $) {
function DashboardViewModel() {
var self = this;
... earlier code
... earlier code
}
return new DashboardViewModel();
});
由于 $.getJSON 异步返回,我发现很难在回调函数之外使用数据。所以首先尝试将数据推送到 JS 数组中。如果您需要任何其他信息,请告诉我。 TIA。
【问题讨论】:
-
删除
self.。
标签: javascript jquery arrays json