我是对象和OOP的新手。我真的不知道如何解释它,但我会尝试。
所以我试图通过JS阅读JSON,JSON是从PHP传递的。如果所有信息都在同一个html页面上,这将很容易,但我正在尝试一些我也是新手。
所以让我展示我的代码......
首先是app.js中的JS
var Donors = function(){
var api = this.list;
$(document).ready(function(){
$.getJSON(api, function(data){
var donorObj = data.payload;
$.each(donorObj, function(i, donor){
//console.log(donor.ign);
});
});
});
}
我想要这部分要做的事情是从JSON我读取它和console.log读取文件准备好时的每个名称(或donor.ign)。
在html页面上,或header.php
<script>
$(function(){
var list = <?php cbProxy(); ?>;
var Dons = new Donors();
Dons.list = list;
});
</script>
列表中的数据是以下JSON。您已经知道其余的内容,它只是将JSON传递给Donors()
函数。
JSON示例:
{
"code": 0,
"payload": [
{
"time": 1349661897,
"packages": [
"49381"
],
"ign": "Notch",
"price": "15.99",
"currency": "USD"
}
我习惯于在同一页面或文件上创建函数并调用它,这是我第一次使用这种函数。如何使用我发送的数据运行该函数,使其console.log()
每个名称?
我确实尝试了
console.log(Donors());
仅记录了undefined
。
新代码:
app.js
var Donors = function(api){
this.list = api;
$(document).ready(function(){
$.getJSON(this.list, function(data){
var donorObj = data.payload;
$.each(donorObj, function(i, donor){
console.log(donor.ign);
});
});
});
}
index.php /内联脚本
<script>
$(function(){
var list = <?php cbProxy(); ?>;
var dons = new Donors(list);
});
</script>
答案 0 :(得分:1)
如果你执行
var Dons = new Donors();
Dons.list = list;
然后在向list
属性分配内容之前调用构造函数。这意味着您的api
变量将为undefined
,只要您没有在Donors
继承的原型对象上定义一个变量。而是将列表作为参数传递给构造函数:
function Donors(api) {
this.list = api;
// do something
}
var dons = new Donors(list);
答案 1 :(得分:0)
我认为应该是这样的:
$.getJSON(api, function(data){
$.each(data.payload, function(i, donor){
console.log(donor.ign);
});
});
试一试,看看是否有效。