我的javascript程序存在问题
globID = oController.getGlobalId();
console.log(globID);
//instructions using globID
oController.getGlobalId()
{
//instructions
console.log(ID);
return ID;
}
当我调用该函数时,undefined的值被赋予globID。 并在日志中有这个顺序: 1- console.log(globID); 2- console.log(ID);
是否有执行该函数的解决方案,然后将实际值分配给globID?
非常感谢。
最诚挚的问候。
答案 0 :(得分:0)
您尚未正确定义getGlobalId
方法。它应该看起来像:
oController.getGlobalId = function () {
//instructions
console.log('in function', ID);
return ID;
}
然后
globID = oController.getGlobalId();
console.log(globID);
可以正常工作(并以正确的顺序为您提供两个控制台日志)
答案 1 :(得分:0)
我无法创建一个小提琴,因为odata服务必须在特定环境中执行,有代码: 在视图中:
globID = oController.getGlobalId();
console.log('view',globID);
//instructions using globID
在控制器中:
getGlobalId:function() {
oModel = this.getModel();
target =this.getSystemName();
oModel.read(/'SolutionManager(\'0050569b-0081-1ee1-9ff7-a45fec113fb6\')/TechnicalSystemsStatus',null, null, true, function(oData,oResponse){
for (var y = 0; y < number; y++) {
if ( oData.results[y].ID == target)
{
globID = oData.results[y].GlobalID;
console.log('controller',globID);
return globID;
}
//......
控制台显示(两行显示之间有小的延迟):
日志:viewundefined
日志:controller0050569b-0081-1ee1-9fb6-27bed6190dcf
我确定延迟是由odata电话引起的,但我没有找到解决方案
感谢tewathia的努力