2017-06-26 11 views
2

Ich habe zwei Fragen:Meteor 1.5: Dynamische Import für Blaze

1) Ich möchte Meteor 1.5 Dynamische Import für Blaze verwenden, aber alle Beispiele und Tutorials für Reagieren gegeben. Ich bin also verwirrt, wie genau es verwendet werden kann. Kann jemand Beispiele dafür geben.

2) Ich verwende Pakete von atmospherjs.com wie Amcharts, die ich nur auf Admin Dashboard-Seite brauche. Wie man sie dynamisch importiert?

Vielen Dank im Voraus!

Antwort

0

Es ist ziemlich geradlinig mit Beispiel-Link https://github.com/thesaucecode/meteor-amcharts-example/blob/master/client/example2.js, müssen Sie nur innerhalb Template.MYTEMPLATE.onRendered(function(){});

Hinzu kommt, dass der Code schreiben Sie var chart als reaktiven-var verwenden können.

+0

Ich habe kein Problem mit der Anzeige von Amcharts. Ich möchte Amchart nach dem Laden von Homepage dynamisch importieren, d. H. Ich möchte nicht, dass Amchart ein Teil meines ersten Meteorbündels ist. Wollte zuerst nur die Startseite laden und dann andere Module. – Rashmi

0

Die grundlegende Technik zum dynamischen Module in Meteor 1.5 unter Verwendung von Blaze ist wie folgt importieren:

Template.theTemplate.events({ 
    'click button'(event, instance) { 
    import("foo").then(Foo => { 
     console.log(Foo); 
    }); 
    } 
}); 

Achten Sie darauf, nehmen Sie einen Blick an, wie Ihr Modul wird dann importiert werden, da offenbar einige Refactoring benötigt werden, wenn in Ihrem Code aufrufen. Zum Beispiel mit "zxcvbn":

WAREN

const result = zxcvbn(pwd); 

IS

const result = zxcvbn.default(pwd); 
1

ich meinen eigenen Admin-Panel entwickle, Meteor Candy, durch dynamische Importe angetrieben werden, so Ich bin glücklich zu teilen, wie ich es funktionierte.

Zuerst haben wir die view.html:

<template name="admin"> 
    Admin 
</template> 

Zweitens haben wir unsere JS Logik:

import { Template } from 'meteor/templating'; 
import { Meteor } from 'meteor/meteor'; 
import { Blaze } from 'meteor/blaze'; 

import './view.html'; 

API = {} 

API.render = function() { 
    Blaze.render(Template.admin, document.body); 
} 

export { API } 

Schließlich müssen wir nur noch diesen Code importieren und unsere Vorlage auslösen zu sein gerendert in die Seite:

openAdmin = function() { 
    import('./imports/admins').then(function (api) { 
     api.render() 
    }) 
} 

Sobald etwas läuft die openAdmin() Funktion, die Vorlage s wird vom Server importiert und die Renderfunktion wird aufgerufen.

+0

Vielen Dank für die Antwort. Können Sie bitte Ihre Dateistruktur teilen? Eigentlich bekomme ich Fehler auf der Konsole => Uncaught (in Versprechung) Fehler: Kann Modul './imports/admins' – Rashmi

+0

nicht finden Ich habe ein ähnliches Beispiel in diesem Repo, dort könnte man eine typische Dateistruktur sehen: https: // github .com/msavin/dynamic-import-beispiel –