Vue string matching in handlebars {{myString !== “” ? myString : otherString}}











up vote
1
down vote

favorite












{{myString !== "" ? myString : otherString}} is currently printing myString which is an empty string



What is wrong with my comparator? I also tried using single quotes



The reason I ask this seemingly basic question is because the Vue documentation on handlebars doesn't seem to cover this, aside from letting me know that general javascript is available, I thought this comparator was general javascript for strings










share|improve this question






















  • i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
    – Boussadjra Brahim
    Nov 10 at 23:05






  • 1




    Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
    – Jonathan Lonowski
    Nov 10 at 23:10












  • @JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
    – CQM
    Nov 11 at 2:23










  • @JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
    – CQM
    Nov 11 at 5:12















up vote
1
down vote

favorite












{{myString !== "" ? myString : otherString}} is currently printing myString which is an empty string



What is wrong with my comparator? I also tried using single quotes



The reason I ask this seemingly basic question is because the Vue documentation on handlebars doesn't seem to cover this, aside from letting me know that general javascript is available, I thought this comparator was general javascript for strings










share|improve this question






















  • i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
    – Boussadjra Brahim
    Nov 10 at 23:05






  • 1




    Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
    – Jonathan Lonowski
    Nov 10 at 23:10












  • @JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
    – CQM
    Nov 11 at 2:23










  • @JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
    – CQM
    Nov 11 at 5:12













up vote
1
down vote

favorite









up vote
1
down vote

favorite











{{myString !== "" ? myString : otherString}} is currently printing myString which is an empty string



What is wrong with my comparator? I also tried using single quotes



The reason I ask this seemingly basic question is because the Vue documentation on handlebars doesn't seem to cover this, aside from letting me know that general javascript is available, I thought this comparator was general javascript for strings










share|improve this question













{{myString !== "" ? myString : otherString}} is currently printing myString which is an empty string



What is wrong with my comparator? I also tried using single quotes



The reason I ask this seemingly basic question is because the Vue documentation on handlebars doesn't seem to cover this, aside from letting me know that general javascript is available, I thought this comparator was general javascript for strings







javascript string vue.js comparator






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 22:57









CQM

14.1k60191330




14.1k60191330












  • i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
    – Boussadjra Brahim
    Nov 10 at 23:05






  • 1




    Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
    – Jonathan Lonowski
    Nov 10 at 23:10












  • @JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
    – CQM
    Nov 11 at 2:23










  • @JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
    – CQM
    Nov 11 at 5:12


















  • i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
    – Boussadjra Brahim
    Nov 10 at 23:05






  • 1




    Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
    – Jonathan Lonowski
    Nov 10 at 23:10












  • @JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
    – CQM
    Nov 11 at 2:23










  • @JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
    – CQM
    Nov 11 at 5:12
















i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
– Boussadjra Brahim
Nov 10 at 23:05




i tried your example by setting myString:"" and otherString:"test" and i set {{myString !== "" ? myString : otherString}} in my template which prints test, i think you have an issue somewhere else
– Boussadjra Brahim
Nov 10 at 23:05




1




1




Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
– Jonathan Lonowski
Nov 10 at 23:10






Does myString.trim() !== "" perhaps have an effect on the output? Can myString be null or undefined instead of ""?
– Jonathan Lonowski
Nov 10 at 23:10














@JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
– CQM
Nov 11 at 2:23




@JonathanLonowski yes it can. The model says myString should be a string but the mongodb object may not have that key, currently
– CQM
Nov 11 at 2:23












@JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
– CQM
Nov 11 at 5:12




@JonathanLonowski the answer was just using if(value) so therefore {{ myString ? ... : ... }}
– CQM
Nov 11 at 5:12












2 Answers
2






active

oldest

votes

















up vote
0
down vote













The ternary operator works fine on the template.
Check your myString data it might not be empty.



  <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
<div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>


See the example below.






var app = new Vue({
el: '#app',
data() {
return {
myString: "",
otherString: "blah"
}
},
})

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div id="app">
<div>Empty: {{myString === "" ? 'test' : otherString}}<div>
<div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

</div>








share|improve this answer




























    up vote
    0
    down vote



    accepted










    if(value) was the answer here, to cover all the conditions I needed



    so {{ myString ? ... : ... }}






    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',
      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%2f53244236%2fvue-string-matching-in-handlebars-mystring-mystring-otherstring%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      0
      down vote













      The ternary operator works fine on the template.
      Check your myString data it might not be empty.



        <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
      <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>


      See the example below.






      var app = new Vue({
      el: '#app',
      data() {
      return {
      myString: "",
      otherString: "blah"
      }
      },
      })

      <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
      <div id="app">
      <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
      <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

      </div>








      share|improve this answer

























        up vote
        0
        down vote













        The ternary operator works fine on the template.
        Check your myString data it might not be empty.



          <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
        <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>


        See the example below.






        var app = new Vue({
        el: '#app',
        data() {
        return {
        myString: "",
        otherString: "blah"
        }
        },
        })

        <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
        <div id="app">
        <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
        <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

        </div>








        share|improve this answer























          up vote
          0
          down vote










          up vote
          0
          down vote









          The ternary operator works fine on the template.
          Check your myString data it might not be empty.



            <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>


          See the example below.






          var app = new Vue({
          el: '#app',
          data() {
          return {
          myString: "",
          otherString: "blah"
          }
          },
          })

          <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
          <div id="app">
          <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

          </div>








          share|improve this answer












          The ternary operator works fine on the template.
          Check your myString data it might not be empty.



            <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>


          See the example below.






          var app = new Vue({
          el: '#app',
          data() {
          return {
          myString: "",
          otherString: "blah"
          }
          },
          })

          <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
          <div id="app">
          <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

          </div>








          var app = new Vue({
          el: '#app',
          data() {
          return {
          myString: "",
          otherString: "blah"
          }
          },
          })

          <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
          <div id="app">
          <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

          </div>





          var app = new Vue({
          el: '#app',
          data() {
          return {
          myString: "",
          otherString: "blah"
          }
          },
          })

          <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
          <div id="app">
          <div>Empty: {{myString === "" ? 'test' : otherString}}<div>
          <div>Non Empty: {{myString !== "" ? 'test' : otherString}}<div>

          </div>






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 at 4:52









          cal_br_mar

          51126




          51126
























              up vote
              0
              down vote



              accepted










              if(value) was the answer here, to cover all the conditions I needed



              so {{ myString ? ... : ... }}






              share|improve this answer

























                up vote
                0
                down vote



                accepted










                if(value) was the answer here, to cover all the conditions I needed



                so {{ myString ? ... : ... }}






                share|improve this answer























                  up vote
                  0
                  down vote



                  accepted







                  up vote
                  0
                  down vote



                  accepted






                  if(value) was the answer here, to cover all the conditions I needed



                  so {{ myString ? ... : ... }}






                  share|improve this answer












                  if(value) was the answer here, to cover all the conditions I needed



                  so {{ myString ? ... : ... }}







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 11 at 6:02









                  CQM

                  14.1k60191330




                  14.1k60191330






























                       

                      draft saved


                      draft discarded



















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244236%2fvue-string-matching-in-handlebars-mystring-mystring-otherstring%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

                      Xamarin.iOS Cant Deploy on Iphone

                      Glorious Revolution

                      Dulmage-Mendelsohn matrix decomposition in Python