我正在使用Dojo和两个单独的数据集创建一个树。一组数据构成主树结构。第二组数据取决于第一组的值。我正在使用xhrGet和Dojo 1.7.3来获取数据。
一旦返回第二组数据,我就会查看JSON的值来确定变量的值,然后将其传递给树。变量显示“!”如果返回的JSON中存在“alert”值,如果没有则返回空白。
var theAlert = dojo.xhrGet({
url: proxy + serviceurl + targetId,
handleAs: 'json',
load: function(data){
if(typeof data.alerts[0] != 'undefined'){
var hello = "!";
return hello;
}
else{
console.log("There is nothing there");
},
error: function(error){
console.log(error)
}
});
我遇到的问题是,当我在需要的地方写“theAlert”变量时,它显示为“[object Object]”而不是“!”。
我觉得我做错了什么,但我无法弄清楚是什么。
我已经尝试过使用theAlert.valueOf();没有成功。帮助
我也可以正确接收数据,我可以通过控制台日志查看。
答案 0 :(得分:1)
dojo.xhrGet()返回Deferred - http://dojotoolkit.org/reference-guide/1.9/dojo/Deferred.html
您需要执行以下操作:
var deferred = dojo.xhrGet({
url: proxy + serviceurl + targetId,
handleAs: 'json'
});
deferred.then(
function(data){
if(typeof data.alerts[0] != 'undefined'){
processAlert("!");
} else{
console.log("There is nothing there");
}
},
function(error){
console.log(error)
}
);
function processAlert(a) {
alert(a);
}
答案 1 :(得分:0)
请看the docs。
你需要返回数据,而不是你好。