javascript - How do you create a method that awaits an onRendered event from another template? -


i using ionic framework package, , have sidebar class. there class called ionsidemenu.snapper, which, looking @ source code, defined when ionsidemenucontainer template rendered, around doing following:

import {template} "meteor/templating"; import {reactivefield} "meteor/peerlibrary:reactive-field";  export const snapper = new reactivefield(false);  // when side menu rendered, `ionsidemenu.snapper` should defined. template['ionsidemenucontainer'].onrendered(() => snapper(ionsidemenu.snapper)); 

however, want create static method on sidebar class await snapper defined, run disabled function.

export class sidebar extends blazecomponent {   static disable() {     // await snapper defined     snapper().disable();   } } 

how awaiting function done, such call other template , disable when rendered?

believe have found answer. posting if needs it.

import {tracker} "meteor/tracker";  // ... class sidebar extends blazecomponent {   static _awaitsnapperready(callback) {     tracker.autorun(c => {       const snapper = snapper();       if (snapper) {         callback(snapper);         c.stop();  // end current computation.       }     });   }   static disable() {     sidebar._awaitsnapperready(snapper => snapper.disable());   } } 

Comments