Function in Meteor.js always returns False when wrapped inside another Function










0















I have a function in Meteor.js which does not behave as expected when I wrap it inside another function. In the example provided below,
I use the "if OnlyBank()" function twice: In one instance, the "if onlyBank()" function is simply dropped inside HTML. (see figure 1)
This works, and returns True/False as expected.
However, when I put this function inside another function (specifically, the "if currentUser" function) it always returns false. (see figure 2)
I suspect this may be a problem with local/global scope, but I do not know how to fix this problem. Can anyone provide any help?



I am new to Meteor and stack overflow.



Javascript



Template.body.helpers(
onlyBank()
return Banks.findOne(userId: Meteor.userId(), Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false);
,
);


HTML



<body>
<div class="container">
> loginButtons
#if onlyBank
True
else
False
/if <!-- Figure 1. This if statement will retun True when the onlyBank's conditions are met -->
<div class="row">
#if currentUser
<div class="col s8">
#if onlyBank
True
else
False
/if <!-- Figure 2. This if statement ALWAYS returns false -->
</div>
<div class="col s4">
> banks
</div>
else
YOU NEED TO BE LOGGED IN FIRST
/if
</div>
</div>
</body>









share|improve this question


























    0















    I have a function in Meteor.js which does not behave as expected when I wrap it inside another function. In the example provided below,
    I use the "if OnlyBank()" function twice: In one instance, the "if onlyBank()" function is simply dropped inside HTML. (see figure 1)
    This works, and returns True/False as expected.
    However, when I put this function inside another function (specifically, the "if currentUser" function) it always returns false. (see figure 2)
    I suspect this may be a problem with local/global scope, but I do not know how to fix this problem. Can anyone provide any help?



    I am new to Meteor and stack overflow.



    Javascript



    Template.body.helpers(
    onlyBank()
    return Banks.findOne(userId: Meteor.userId(), Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false);
    ,
    );


    HTML



    <body>
    <div class="container">
    > loginButtons
    #if onlyBank
    True
    else
    False
    /if <!-- Figure 1. This if statement will retun True when the onlyBank's conditions are met -->
    <div class="row">
    #if currentUser
    <div class="col s8">
    #if onlyBank
    True
    else
    False
    /if <!-- Figure 2. This if statement ALWAYS returns false -->
    </div>
    <div class="col s4">
    > banks
    </div>
    else
    YOU NEED TO BE LOGGED IN FIRST
    /if
    </div>
    </div>
    </body>









    share|improve this question
























      0












      0








      0








      I have a function in Meteor.js which does not behave as expected when I wrap it inside another function. In the example provided below,
      I use the "if OnlyBank()" function twice: In one instance, the "if onlyBank()" function is simply dropped inside HTML. (see figure 1)
      This works, and returns True/False as expected.
      However, when I put this function inside another function (specifically, the "if currentUser" function) it always returns false. (see figure 2)
      I suspect this may be a problem with local/global scope, but I do not know how to fix this problem. Can anyone provide any help?



      I am new to Meteor and stack overflow.



      Javascript



      Template.body.helpers(
      onlyBank()
      return Banks.findOne(userId: Meteor.userId(), Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false);
      ,
      );


      HTML



      <body>
      <div class="container">
      > loginButtons
      #if onlyBank
      True
      else
      False
      /if <!-- Figure 1. This if statement will retun True when the onlyBank's conditions are met -->
      <div class="row">
      #if currentUser
      <div class="col s8">
      #if onlyBank
      True
      else
      False
      /if <!-- Figure 2. This if statement ALWAYS returns false -->
      </div>
      <div class="col s4">
      > banks
      </div>
      else
      YOU NEED TO BE LOGGED IN FIRST
      /if
      </div>
      </div>
      </body>









      share|improve this question














      I have a function in Meteor.js which does not behave as expected when I wrap it inside another function. In the example provided below,
      I use the "if OnlyBank()" function twice: In one instance, the "if onlyBank()" function is simply dropped inside HTML. (see figure 1)
      This works, and returns True/False as expected.
      However, when I put this function inside another function (specifically, the "if currentUser" function) it always returns false. (see figure 2)
      I suspect this may be a problem with local/global scope, but I do not know how to fix this problem. Can anyone provide any help?



      I am new to Meteor and stack overflow.



      Javascript



      Template.body.helpers(
      onlyBank()
      return Banks.findOne(userId: Meteor.userId(), Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false);
      ,
      );


      HTML



      <body>
      <div class="container">
      > loginButtons
      #if onlyBank
      True
      else
      False
      /if <!-- Figure 1. This if statement will retun True when the onlyBank's conditions are met -->
      <div class="row">
      #if currentUser
      <div class="col s8">
      #if onlyBank
      True
      else
      False
      /if <!-- Figure 2. This if statement ALWAYS returns false -->
      </div>
      <div class="col s4">
      > banks
      </div>
      else
      YOU NEED TO BE LOGGED IN FIRST
      /if
      </div>
      </div>
      </body>






      javascript meteor






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 14 '18 at 0:35









      Gavin William KerrGavin William Kerr

      122




      122






















          1 Answer
          1






          active

          oldest

          votes


















          0














          if I got it right, the Meteor.userId is not a function.



          You should use: userId: Meteor.userId



          Maybe you give this a try:



          Template.body.helpers(
          onlyBank()
          return (Meteor.userId !== undefined) && (Banks.findOne(userId: Meteor.userId, Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false) !== undefined);
          ,
          );


          This will return always a boolean value






          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291491%2ffunction-in-meteor-js-always-returns-false-when-wrapped-inside-another-function%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            if I got it right, the Meteor.userId is not a function.



            You should use: userId: Meteor.userId



            Maybe you give this a try:



            Template.body.helpers(
            onlyBank()
            return (Meteor.userId !== undefined) && (Banks.findOne(userId: Meteor.userId, Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false) !== undefined);
            ,
            );


            This will return always a boolean value






            share|improve this answer



























              0














              if I got it right, the Meteor.userId is not a function.



              You should use: userId: Meteor.userId



              Maybe you give this a try:



              Template.body.helpers(
              onlyBank()
              return (Meteor.userId !== undefined) && (Banks.findOne(userId: Meteor.userId, Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false) !== undefined);
              ,
              );


              This will return always a boolean value






              share|improve this answer

























                0












                0








                0







                if I got it right, the Meteor.userId is not a function.



                You should use: userId: Meteor.userId



                Maybe you give this a try:



                Template.body.helpers(
                onlyBank()
                return (Meteor.userId !== undefined) && (Banks.findOne(userId: Meteor.userId, Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false) !== undefined);
                ,
                );


                This will return always a boolean value






                share|improve this answer













                if I got it right, the Meteor.userId is not a function.



                You should use: userId: Meteor.userId



                Maybe you give this a try:



                Template.body.helpers(
                onlyBank()
                return (Meteor.userId !== undefined) && (Banks.findOne(userId: Meteor.userId, Banks.accountNumber:"$exists":false, Banks.routingNumber:"$exists": false) !== undefined);
                ,
                );


                This will return always a boolean value







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 14 '18 at 1:11









                Tom FreudenbergTom Freudenberg

                1,098723




                1,098723





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291491%2ffunction-in-meteor-js-always-returns-false-when-wrapped-inside-another-function%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Use pre created SQLite database for Android project in kotlin

                    Darth Vader #20

                    Ondo