3

我有一个工作 OData 端点,我可以在其中查看各个数据点。(例如 localhost/myData/person(10) 有第 10 个人的数据。)

但是,我的 JayData javascript 中的对象值没有被填充。当我打印时:

控制台.log(人[10]);

initData 中的每个对象参数都是未定义的。 在此处输入图像描述

我的完整脚本是:

var ctx = new WebApplication.resource_dbEntities({ name: 'oData', oDataServiceHost: 'http://localhost:8080/Resource/example.svc' });

    ctx.onReady(function() {
            ctx.person.toArray().then(function(person){
            console.log("Person[10] is:");
            console.log(person[10]);
              person.forEach(function(p) {
                   //Always prints "undefined" :(
                   console.log(p.person_lastname);
               });
          })

          .fail(function(r){
            console.log(r);
          });
        });

更新: 服务器肯定是在发送数据 - 请参阅网页上网络面板的剪辑。 在此处输入图像描述

注意:我在JayData 论坛上发布了更多详细信息。

4

2 回答 2

1

您不需要 initData。首先查看浏览器的网络面板,看看您的服务器是否发送任何数据。

于 2013-06-27T17:26:58.383 回答
1

我弄清楚了这个问题。Eclipse 从 mySQL 自动生成实体并将其链接到 persistence.xml。person.java 中的变量(即使它们是私有的?!)与 initData 变量不匹配。

一旦我打开 person.java 并更改

@Column(name="project_id")
private int projectId;      
@Column(name="project_budget")
private int projectBudget;

@Column(name="project_client")
private String projectClient;

@Temporal(TemporalType.DATE)
@Column(name="project_enddate")
private Date projectEnddate;

@Column(name="project_ffm")
private int projectFfm;

@Column(name="project_manager")
private int projectManager;

@Column(name="project_name")
private String projectName;

@Column(name="project_number")
private String projectNumber;

@Temporal(TemporalType.DATE)
@Column(name="project_startdate")
private Date projectStartdate;

@Column(name="project_status")
private int projectStatus;

对此:

@Id
@Column(name="project_id")
private int project_id;

@Column(name="project_budget")
private int project_budget;

@Column(name="project_client")
private String project_client;

@Temporal(TemporalType.DATE)
@Column(name="project_enddate")
private Date project_enddate;

@Column(name="project_ffm")
private int project_ffm;

@Column(name="project_manager")
private int project_manager;

@Column(name="project_name")
private String project_name;

@Column(name="project_number")
private String project_number;

@Temporal(TemporalType.DATE)
@Column(name="project_startdate")
private Date project_startdate;

@Column(name="project_status")
private int project_status;

一切正常。感谢大家的帮助。

于 2013-06-28T16:51:06.107 回答