这似乎很愚蠢,我无法做到这一点。我正在使用网络上的常用代码进行odata查询。问题是结果保留在getFieldData(retrieveReq)例程中。我不想立即在当前表单上设置字段。如何从中获取我的值,以便数据可以在其他javascript函数中使用?全局变量会很好,但我尝试过的任何东西都没有用。以下代码显示“x”。
var var1 = "x"; odataquery(); alert(var1);
给定here的示例有两个显示数据的警报。 Id和Name如何在该函数之外使用?
Edit1:下面是调用getFieldData(this)的例程的主要部分。我想在其他javascript函数中使用OwnerBUID和OwnerBUName。
var retrieveReq = new XMLHttpRequest();
retrieveReq.open("GET", odataSelect, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function () {
getFieldData(this);
};
retrieveReq.send();
function getFieldData(retrieveReq) {
if (retrieveReq.readyState == 4 && retrieveReq.status == 200) {
// 4=request complete, 200=OK
var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d;
var retrievedValue = retrieved.results[0].BusinessUnitId;
OwnerBUID = retrievedValue.Id;
OwnerBUName = retrievedValue.Name;
}
}
答案 0 :(得分:0)
我想你想把数据作为javascript函数的返回值。你可以这样做: var returnedData = function getFieldData(retrieveReq) { ... 返回数据; }
顺便说一句,您可以考虑在客户端应用程序中使用JayData,Breeze和Datajs源代码包。他们使用javascript实现低级API以消费odata服务。