2016-04-06 5 views
1

Ich verwende ein ionic-Framework-Paket, und ich habe eine Sidebar-Klasse. Es gibt eine Klasse ionSideMenu.snapper genannt ist, die auf den Quellcode suchen, definiert wird, wenn die ionSideMenuContainer Vorlage gemacht wird, so dass ich um das, indem Sie die folgenden Schritte aus:Wie erstellen Sie eine Methode, die ein onRendered-Ereignis von einer anderen Vorlage erwartet?

import {Template} from "meteor/templating"; 
import {ReactiveField} from "meteor/peerlibrary:reactive-field"; 

export const Snapper = new ReactiveField(false); 

// now when the side menu is rendered, `IonSideMenu.snapper` should be defined. 
Template['ionSideMenuContainer'].onRendered(() => Snapper(IonSideMenu.snapper)); 

Allerdings möchte ich eine statische Methode erstellen auf meiner Sidebar Klasse, die auf die Snapper erwartet, um definiert zu werden, dann wird die disabled Funktion laufen.

Wie könnte diese wartende Funktion ausgeführt werden, so dass ich sie von jeder anderen Vorlage aus aufrufen kann und sie deaktiviert wird, wenn sie gerendert wird?

Antwort

0

Ich glaube, ich habe eine Antwort gefunden. Veröffentlichen Sie es, wenn es jemand braucht.

import {Tracker} from "meteor/tracker"; 

// ... 
class Sidebar extends BlazeComponent { 
    static _awaitSnapperReady(callback) { 
    Tracker.autorun(c => { 
     const snapper = Snapper(); 
     if (snapper) { 
     callback(snapper); 
     c.stop(); // end the current computation. 
     } 
    }); 
    } 
    static disable() { 
    Sidebar._awaitSnapperReady(snapper => snapper.disable()); 
    } 
} 
Verwandte Themen