No More Posting New Topics!

If you have a question or an issue, please start a thread in our Github Discussions Forum.
This forum is closed for new threads/ topics.

Navigation

    Quasar Framework

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    Global functions for all app ?

    Framework
    3
    13
    1451
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Incremental @metalsadman last edited by Incremental

      @metalsadman thanks, I missed the declaration in quasar.conf.js
      In my template, now when I use {{ calc }} I get :
      [Vue warn]: Error in render: “ReferenceError: assignment to undeclared variable result”

      dobbel 1 Reply Last reply Reply Quote 1
      • dobbel
        dobbel @Incremental last edited by

        @incremental

        [Vue warn]: Error in render: “ReferenceError: assignment to undeclared variable result”

        Maybe because result is missing let or const? Right now it is a global variable…

        result = input.concat(input);
        
        I 1 Reply Last reply Reply Quote 0
        • I
          Incremental @dobbel last edited by

          @dobbel oups ! of course, I was searching for the problem in my component…

          A last question : how to declare more than one function ?
          Should I export all functions in boot/fonctions.js ?
          … but how to deal if you have many functions ?
          Is there a way to do an implicit declaration ??

          dobbel 1 Reply Last reply Reply Quote 0
          • dobbel
            dobbel @Incremental last edited by dobbel

            @incremental

            if you use the import way instead of putting your functions in Vue prototype , you can do this:

            import Vue from "vue";
            
            function myFuncA(input) {
            	result = input.concat(input);
            	return result;
            }
            function myFuncB(input) {
            	result = input.concat(input);
            	return result;
            }
            
            
            export { myFuncA, myFuncB };
            

            See:
            https://flaviocopes.com/how-to-export-multiple-functions-javascript/

            I 1 Reply Last reply Reply Quote 0
            • I
              Incremental @dobbel last edited by

              @dobbel you mean that I don’t have to :

              export default ({ Vue }) => {
              	Vue.prototype.$myFuncA = myFuncA;
              	Vue.prototype.$myFuncB = myFuncB;
              };
              
              dobbel 1 Reply Last reply Reply Quote 0
              • dobbel
                dobbel @Incremental last edited by

                @incremental

                correct.

                I 1 Reply Last reply Reply Quote 0
                • I
                  Incremental @dobbel last edited by

                  @dobbel just to understand what I’m doing, for what purpose

                  export default ({ Vue }) => { ... }
                  

                  could be useful for ?

                  metalsadman 1 Reply Last reply Reply Quote 0
                  • metalsadman
                    metalsadman @Incremental last edited by metalsadman

                    @incremental it’s a way to get the Vue instance, if you’re just consuming that then you don’t need to export it as a function and just do something like this.

                    import Vue from 'vue'
                    ...
                    Vue.prototype.$myFuncA ...
                    ...
                    

                    better read the docs to understand why there’s a export default function there. https://quasar.dev/quasar-cli/boot-files#Introduction

                    1 Reply Last reply Reply Quote 0
                    • I
                      Incremental last edited by

                      Thanks all for your help 😉

                      1 Reply Last reply Reply Quote 0
                      • I
                        Incremental @metalsadman last edited by Incremental

                        @metalsadman Hello, these global functions are working in my app, but now, I’d like to use one in my store.

                        In my store I have :

                        import { fonctions } from "boot/fonctions.js";
                        

                        and inside it, I tried :

                        state.user["avatar_image"] = fonctions.ReadFile(state.user["avatar_fullpath"], result_msg);
                        

                        and I get :
                        Uncaught (in promise) TypeError: boot_fonctions_js__WEBPACK_IMPORTED_MODULE_5__.fonctions is undefined
                        or with :

                        this.$ReadFile(state.user["avatar_fullpath"], result_msg);
                        

                        I get : TypeError: undefined has no properties
                        state.user[“avatar_image”] = undefined.$ReadFile(state.user[“avatar_fullpath”], result_msg);

                        How could I call my function ReadFile() ? Thanks

                        I 1 Reply Last reply Reply Quote 0
                        • I
                          Incremental @Incremental last edited by

                          Solved with :

                          import { ReadFile } from "boot/fonctions.js";
                          

                          instead of :

                          import { fonctions } from "boot/fonctions.js";
                          
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post