如何使用Javascript修改父函数中的变量?

时间:2015-02-26 09:32:37

标签: javascript jquery cordova

我使用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); }
}

1 个答案:

答案 0 :(得分:0)

谢谢,基于Arun P Johny的评论,我能够通过在登录时调用的函数中调用 mymodule_get_unread_pm_count()来实现,我曾经设置过包含未读消息数的变量。这样,我可以在 mymodule_home_auth_page()中使用if语句,而不是调用其他函数,从而消除问题。