我使用Cordova(Drupalgap)为我的网站制作移动应用程序。我是一个Javascript新手,我有一个创建页面的功能( mymodule_home_auth_page())。在该函数内部,我想调用另一个函数 mymodule_get_unread_pm_count()(以检查用户是否有未读消息),如果此函数返回一个值,我想为内容[] 在父函数内。
但是,函数内部的content[]
标记不会打印到显示中。函数 mymodule_get_unread_pm_count()会返回一个值,因为当我加载应用程序时调用了alert()
,通知我有未读消息,但标记没有打印到显示屏上。
我认为这与范围有关,但我不明白我需要改变什么以允许我在父函数中向content[]
注入一些东西。
以下是我现在使用的代码:
function mymodule_home_auth_page() {
try {
var content = {};
content['header'] = {
markup: '<h1>Hello world</h1>',
}
};
mymodule_get_unread_pm_count({
success: function(result) {
content['unreadmessages'] = { markup: '<h2>You have unread messages</h2>'};
var num_unread = result[0];
alert('You have' + num_unread + 'unread messages.');
return content;
}
});
content['footer'] = {
markup: '<p>Nothing to see down here.</p>',
}
};
catch (error) { console.log('mymodule_home_auth_page - ' + error); }
}
答案 0 :(得分:0)
谢谢,基于Arun P Johny的评论,我能够通过在登录时调用的函数中调用 mymodule_get_unread_pm_count()来实现,我曾经设置过包含未读消息数的变量。这样,我可以在 mymodule_home_auth_page()中使用if
语句,而不是调用其他函数,从而消除问题。